鍍金池/ 問答/HTML/ 如何體現(xiàn)設(shè)置與不設(shè)置socket.setKeepAlive()的區(qū)別?

如何體現(xiàn)設(shè)置與不設(shè)置socket.setKeepAlive()的區(qū)別?

在客戶端設(shè)置socket.setKeepAlive(true, 1000),而服務器設(shè)置socket.setTimeout(2000)服務器卻依然會觸發(fā)timeout事件?setKeepAlive的作用不是在沒有數(shù)據(jù)傳輸時定時發(fā)送一些包來給服務器么?

回答
編輯回答
拮據(jù)

socket.setKeepAlive() 意思是如果規(guī)定時間沒連接,則發(fā)送一個空包確認。

socket.setTimeout() 同理,也是規(guī)定時間內(nèi)沒連接的話會觸發(fā),但是不會發(fā)空包確認,當然你可以通過回調(diào)函數(shù)中的 socket 來發(fā)一個確認包,這樣就和 setKeepAlive 類似了,除此之外會觸發(fā) timeout 事件。

這是以前看過的一篇文章,寫的挺詳細的,你可以看看,點擊這里

2018年1月28日 17:53