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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

长连接心跳机制理解

發(fā)布時(shí)間:2023/12/18 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 长连接心跳机制理解 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

近期使用go 開(kāi)發(fā)聊天室,使用到websocket常鏈接。

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

我發(fā)現(xiàn)當(dāng)連接斷開(kāi)的時(shí)候會(huì)走if里面,輸出eof

這樣就知道,客戶端斷開(kāi)了連接。

但在之前使用workerman 中發(fā)現(xiàn)其中有一塊是《心跳機(jī)制》,這個(gè)心跳機(jī)制也是判斷鏈接是否斷開(kāi)。

所以我就覺(jué)得判斷鏈接是否斷開(kāi)了,這個(gè)功能是不是重復(fù)了。或者心跳機(jī)制是不是多余的。(個(gè)人理解)

先說(shuō)下我查閱資料得到的對(duì)心跳機(jī)制的理解

  心跳機(jī)制是客戶端,自己發(fā)送心跳包給服務(wù)端來(lái)檢測(cè)鏈接是否正常。大致方法是在客戶端寫(xiě)一個(gè)定時(shí)器,定時(shí)向服務(wù)端發(fā)送一個(gè)短小精悍的包。然后服務(wù)端接收到包再返回給客戶端一條信息。每次一套:客戶端發(fā)送包->服務(wù)端接收返回相應(yīng)->客戶端接受相應(yīng);正常執(zhí)行,表示該鏈接正常。否則則認(rèn)為斷線。

  心跳包會(huì)像心跳一樣每隔固定時(shí)間發(fā)送一次。

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

對(duì)于服務(wù)端中獲取斷線輸出eof和心跳機(jī)制個(gè)人理解

  可能是如果只是通過(guò)服務(wù)端來(lái)判斷鏈接是否正常,是不穩(wěn)定的,或者只通過(guò)服務(wù)端判斷鏈接是否正常的話無(wú)法控制客戶端斷線后的提示、操作。所以在客戶端也需要一個(gè)心跳機(jī)制,雙重判斷鏈接是否正常。這樣當(dāng)鏈接斷開(kāi)后,服務(wù)端可以有操作(刪除服務(wù)端在線列表中該用戶等),客戶端也可以有操作(重新發(fā)送登錄請(qǐng)求,或提示用戶等),這樣既可以保證程序的正常使用,也可以提高用戶體驗(yàn)。

  個(gè)人觀點(diǎn)!

轉(zhuǎn)載于:https://www.cnblogs.com/jackylee92/p/6207473.html

總結(jié)

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

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。