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