国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

AsyncTcpConnection異步鏈接tcp服務(wù)端的問題

mazhaozi

C++服務(wù)端
連上發(fā)送數(shù)據(jù)過來
AsyncTcpConnection單純接受數(shù)據(jù) 什么操作都沒有 單純測試用
服務(wù)端短時間斷開 AsyncTcpConnection reConnect 可以重連

如果服務(wù)端長時間沒發(fā)送數(shù)據(jù) 重啟服務(wù)端
worekrman程序的AsyncTcpConnection 不自動重連了
worekrman也跟著重啟正常接收

應(yīng)該是哪里的問題

4231 1 1
1個回答

walkor 打賞

workerman手冊有反復(fù)強(qiáng)調(diào),長連接必須要加心跳維持連接存活。心跳目的是避免連接由于長時間不活躍被中間路由節(jié)點(diǎn)清理而斷開。而且這種清理并不會給客戶端或者服務(wù)端發(fā)送fin包(連接關(guān)閉通知的包),所以雙方(客戶端和服務(wù)端)不知道連接已經(jīng)斷開。因為連接已經(jīng)被清理,即使重啟了服務(wù)端,workerman所在服務(wù)器操作系統(tǒng)也不會收到fin包,認(rèn)為連接還在,workerman也就更無從知曉連接已經(jīng)斷開,所以不會觸發(fā)onClose,更不會reConnect。

你可以用定時器定時發(fā)送點(diǎn)數(shù)據(jù)給服務(wù)端,一方面是避免連接被清理,另外一方面是能探測到對方斷電斷網(wǎng)異常斷連接的情況。心跳間隔最好小于1分鐘。

年代過于久遠(yuǎn),無法發(fā)表回答
??