日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

长连接心跳机制理解

發布時間:2023/12/18 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 长连接心跳机制理解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

近期使用go 開發聊天室,使用到websocket常鏈接。

if err = websocket.JSON.Receive(ws,&reply); err != nil {log.Println(err)return }

我發現當連接斷開的時候會走if里面,輸出eof

這樣就知道,客戶端斷開了連接。

但在之前使用workerman 中發現其中有一塊是《心跳機制》,這個心跳機制也是判斷鏈接是否斷開。

所以我就覺得判斷鏈接是否斷開了,這個功能是不是重復了。或者心跳機制是不是多余的。(個人理解)

先說下我查閱資料得到的對心跳機制的理解

  心跳機制是客戶端,自己發送心跳包給服務端來檢測鏈接是否正常。大致方法是在客戶端寫一個定時器,定時向服務端發送一個短小精悍的包。然后服務端接收到包再返回給客戶端一條信息。每次一套:客戶端發送包->服務端接收返回相應->客戶端接受相應;正常執行,表示該鏈接正常。否則則認為斷線。

  心跳包會像心跳一樣每隔固定時間發送一次。

  理解來源:http://www.codeweblog.com/socket%E5%BF%83%E8%B7%B3%E5%8C%85%E6%9C%BA%E5%88%B6/

對于服務端中獲取斷線輸出eof和心跳機制個人理解

  可能是如果只是通過服務端來判斷鏈接是否正常,是不穩定的,或者只通過服務端判斷鏈接是否正常的話無法控制客戶端斷線后的提示、操作。所以在客戶端也需要一個心跳機制,雙重判斷鏈接是否正常。這樣當鏈接斷開后,服務端可以有操作(刪除服務端在線列表中該用戶等),客戶端也可以有操作(重新發送登錄請求,或提示用戶等),這樣既可以保證程序的正常使用,也可以提高用戶體驗。

  個人觀點!

轉載于:https://www.cnblogs.com/jackylee92/p/6207473.html

總結

以上是生活随笔為你收集整理的长连接心跳机制理解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。