服務器端怎么判斷客戶端已斷開連接
- 檢測連接是否丟失的方法大致有兩種:keepalive和heart-beat。
- (tcp內部機制)采用keepalive,它會先要求此連接一定時間沒有活動(一般是幾個小時),然后發出數據段,經過多次嘗試后(每次嘗試之間也有時間間隔),如果仍沒有響應,則判斷連接中斷。可想而知,整個周期需要很長的時間。
- (應用層實現)一個簡單的heart-beat實現一般測試連接是否中斷采用的時間間隔都比較短,可以很快的決定連接是否中斷。並且,由於是在應用層實現,因為可以自行決定當判斷連接中斷后應該采取的行為,而keepalive在判斷連接失敗后只會將連接丟棄。