我是使用Linux Centos 6.5的環(huán)境,VM虛擬機(jī),Workerman Gateway。
我在開(kāi)啟Status狀態(tài)檢查的時(shí)候,發(fā)現(xiàn)有send_fail的情況,由于傳輸都是本地網(wǎng)絡(luò),所以本地網(wǎng)絡(luò)問(wèn)題基本可以排除。請(qǐng)問(wèn)我可以在那里檢查日志,或是可以排查問(wèn)題。這里先謝謝解答問(wèn)題的大神。
有send fail ?一般不是什么大問(wèn)題,一般是由于客戶(hù)端主動(dòng)關(guān)閉連接導(dǎo)致的。
send_fail 有兩種原因,
1、向客戶(hù)端發(fā)送數(shù)據(jù)時(shí)發(fā)現(xiàn)客戶(hù)端已經(jīng)斷開(kāi),由于是客戶(hù)端主動(dòng)斷開(kāi)的,屬于正?,F(xiàn)象,一般可以忽略
2、客戶(hù)端接收緩沖區(qū)滿(mǎn),但是任然向客戶(hù)端發(fā)送數(shù)據(jù)。比如瀏覽器最小化后瀏覽器自身一般不再接收websocket數(shù)據(jù),導(dǎo)致數(shù)據(jù)積壓在workerman的發(fā)送緩沖區(qū)(workerman為每個(gè)客戶(hù)端建立了一個(gè)發(fā)送緩沖區(qū)),當(dāng)緩沖數(shù)據(jù)達(dá)到上限值(TcpConnection::$maxSendBufferSize)后,這時(shí)候仍然有數(shù)據(jù)向這個(gè)客戶(hù)端發(fā)送,那么便觸發(fā)onError,send_fail計(jì)數(shù)加1。
參考:http://doc3.workerman.net/worker-development/on-buffer-full.html
謝謝回復(fù),不過(guò)有嘗試寫(xiě)著一個(gè)HTML5的小游戲,由服務(wù)器發(fā)送步驟1 - 步驟7,如果步驟2沒(méi)有發(fā)送成功,那么前臺(tái)直接由步驟1跳到步驟3,那么顯示會(huì)很奇怪,請(qǐng)問(wèn)有什么方式可以確認(rèn)收到嗎?收不到再發(fā)一次。
我用的是websocket,請(qǐng)問(wèn)也是同樣的特性嗎?因?yàn)槲以谧约簩?xiě)的日志,發(fā)現(xiàn)發(fā)送是發(fā)送不出去。所以想用一些方法確認(rèn)發(fā)送到。