長連接心跳機制理解

近期使用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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/456672.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/456672.shtml
英文地址,請注明出處:http://en.pswp.cn/news/456672.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

老男孩36期運維脫產班---- 決心書

我叫林宗超,來自四川,12年前畢業于四川的一所普通高中學校,畢業后再也沒有從事過其他的教育培訓學習。離開學校后我去過廣東,福建,最后因為我家駕校有了點小小的規模,缺人,我回到了成都做了幾年…

python簡易停車系統

# 簡易版停車管理: # # 停車場最多停車數; max_car; # 當前停車數;cur_car; # 當前停車列表; car_list [] # # 停車: # 1). 如果沒有達到最多停車數,則允許停車; # 2) 計入入場的時間,使用time.time(&am…

dl,dt,dd怎么用

我們在制作網頁過程中用到列表時一般會使用<ul>或者<ol>標簽&#xff0c;很少用刑<dl>標簽&#xff0c;但是這個三個標簽卻有著不可忽視的作用&#xff0c;畢竟Web標準中要盡最大可能的使用已有的標簽。它們的用途是&#xff1a;< dl>< /dl>用來…

Hive的基本操作總結

文章目錄目錄前言&#xff1a;1、Hive基本操作1.1、DDL操作1.2、DML操作1.3、Hive Join總結:目錄 前言&#xff1a; 對于Hive來說最重要的一點就是能夠用Hql來進行數據分析。而Hql來處理數據比MapReduce方便很多&#xff08;原理是一樣的&#xff0c;Hql底層轉化為MapReduce來…

獲取圖片的EXIF信息

對于專業的攝影師來說&#xff0c;Exif信息是很重要的信息&#xff0c;也包含了非常多的東西 1.EXIF EXIF&#xff08;Exchangeable Image File&#xff09;是“可交換圖像文件”的縮寫&#xff0c;當中包含了專門為數碼相機的照片而定制的元數據&#xff0c;可以記錄數碼照片的…

【python】AnaConda安裝錯誤解決方法

https://www.anaconda.com/ 官網下載啥事沒有&#xff01;

貪心問題的基本性質

首先確定一個前提 該問題是或可能滿足 最優子結構&#xff0c;greedy選擇性 最優子結構是說。。子結構一定能對全局最優解作貢獻(?) greedy選擇性應該是說。。如果當前我們不貪心地選本來看上去或者就是正確的決策an 那么我們得到結果s,只要證明交換an得到s比不交換更好&#…

Hbase讀寫數據的原理解析

目錄1、體系圖寫數據的流程&#xff08;參考上圖&#xff09;&#xff1a;讀數據的流程&#xff08;參考下圖&#xff09;&#xff1a; 目錄 1、體系圖 針對上圖的一些解釋&#xff1a; 這里面數據分區&#xff08;region&#xff09;存儲是為了查詢方便&#xff08;即因為是…

anaconda來創建python環境

Anacond下載 下載地址&#xff1a;https://www.anaconda.com/download/ 管理虛擬環境 接下來我們就可以用anaconda來創建我們一個個獨立的python環境了.接下來的例子都是在命令行操作的,請打開你的命令行吧. activate activate 能將我們引入anaconda設定的虛擬環境中, 如果你后…

Zookeeper的簡介及命令行操作

目錄前言1、Zookeeper簡介2、Zookeeper結構3、Zookeeper常用的命令行操作 總結&#xff1a; 目錄 前言 作為一款第三方的協調服務框架&#xff0c;ZK被應用在許多地方&#xff0c;如&#xff1a;Hbase中用于存儲-ROOT表的位置信息&#xff1b;Storm中用于保存任務分配的信息、…

移動端開發文章導航

1. 微信企業號 微信企業號 介紹微信企業號 獲取AccessToken微信企業號 獲取用戶信息微信企業號 JS-SDK&#xff1a;上傳圖片2. 微信公眾號 微信公眾號 訂閱號與服務號的區別微信公眾號 幾種移動端UI框架介紹轉載于:https://www.cnblogs.com/polk6/p/6217835.html

打開cmd窗口新技巧get

1.在當前目錄下&#xff0c;按住shift鍵點擊右鍵,選擇在此處打開命令窗口 很多時候我們需要打開命令行然后進入到相應目錄進行一些操作。 常規的做法是: WinR打開運行窗口輸入"cmd"回車打開命令行窗口 假如我們要進入的是D盤foo文件夾下的一個bar子文件夾&#xff0c…

【python】pycharm啟動 一直index,無法運行

花了幾個小時找相關資料&#xff0c;按網上提供答案操作&#xff0c;依然沒有解決, 最后讓它自動更新完才好&#xff08;大概更新了十分鐘 有固態情況&#xff09; 參考鏈接 pycharm啟動后總是不停的updating indices...indexing? pycharm 啟動后一直更新index的問題

Zookeeper集群角色分配原理

ZK內部存在Leader和Follower兩個角色&#xff0c;那么這兩種角色是怎樣劃分呢&#xff1f;或者說是怎么樣被選舉出來呢&#xff1f;以下將詳細介紹ZK內部的選舉機制。 ZK是通過內部的選舉算法來選出Leader。&#xff08;服務器需要配置對應的ID和文件&#xff09;如下圖所示&a…

2016大數據發展7大趨勢

1.算法&#xff08;Algorithms&#xff09;的崛起 大數據已過時&#xff0c;算法正當道。數據已經成為一種商品&#xff0c;每個組織都能夠收集和存儲大量的數據。分析大數據也不再那么引人注目了。每個組織都可以聘用或培訓大數據分析人員來了解數據模式。 2016年&#xff0c;…

請編寫一個方法,實現整數的乘法、減法和除法運算(這里的除指整除)。只允許使用加號。

方法思路 乘法&#xff1a;a*b就等于b個a相加。題目也說了不考慮性能。 減法&#xff1a;a-b就等于a(-1)*b;就等于a加上b的相反數&#xff0c;得到b的相反數就解決了。 除法&#xff1a;a/bn&#xff1b;就是說有n個b相加小于等于a;可以采用b一直加&#xff0c;直到大于a結束。…

MySQL數據庫重點概要總結

目錄前言&#xff1a;1、結構化查詢語言(Structured Query Language)簡稱SQL。2、基本SELECT語句語法3、多表鏈接4、笛卡爾積5、ANSI SQL ANSI SQL&#xff1a;1999標準的連接語法6、單行函數和分組函數的區別&#xff1a;7、分組函數8、SQL語句的執行順序&#xff1a;9、子查詢…

《MySQL排錯指南》——1.9 許可問題

本節書摘來自異步社區出版社《MySQL排錯指南》一書中的第1章&#xff0c;第1.9節&#xff0c;作者&#xff1a;【美】Sveta Smirnova&#xff08;斯維特 斯米爾諾娃&#xff09;&#xff0c;更多章節內容可以訪問云棲社區“異步社區”公眾號查看。 1.9 許可問題 MySQL有復雜的…

畢業半年,碼過5個城市

時間飛逝&#xff0c;半年前我還在想我的畢業設計要怎么做&#xff0c;還在擔心自己的答辯能夠拿多少分&#xff0c;而此刻我正在成都寫我喜歡的代碼&#xff0c;過著我想過的生活。畢業半年&#xff0c;碼過5個城市&#xff0c;從廈門->太原-》合肥-》北京-》成都。2016是我…

python ---單例(Singleton)

單例&#xff08;Singleton&#xff09; 單例是一種 設計模式 &#xff0c;應用該模式的類只會生成一個實例。 單例模式保證了在程序的不同位置都 可以且僅可以取到同一個對象實例 &#xff1a;如果實例不存在&#xff0c;會創建一個實例&#xff1b;如果已存在就會返回這個實例…