2014-11-23 72 views
0

我想學習Perl中的套接字。用戶關閉蓋子並且套接字連接斷開是常見的。有什麼方法可以讓服務器瞭解客戶端進入睡眠模式。請幫助。我正在使用Net :: WebSocket ::服務器睡眠後重新連接插座

回答

0

檢測未被主動關閉但突然無法訪問的套接字的常用方法是根據約定的時間表發送心跳包。每次接收到心跳包時,套接字的另一端都應該用心跳響應進行響應。

如果服務器發出心跳並在合理的時間內沒有收到響應,則可以假定客戶端不再有效連接。

socket.io這樣的套接字庫實現了這種技術,用於檢測何時連接已經死機以便與websockets一起使用,但是同樣的技術可以用於任何類型的套接字。

可以從連接的任何一端使用心跳(取決於您希望如何操作以及各方的期望)。因此,如果服務器發送心跳信號,客戶端可以假定如果它在X時間內沒有收到心跳請求,那麼它與服務器的連接必須已經死機,因此它應該關閉套接字並重新連接。

+0

感謝您解釋這一點。你可以給我鏈接瞭解更多關於這個或任何演示? – user3850078 2014-11-24 16:01:32