长连接心跳机制理解

近期使用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.mzph.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;如果已存在就会返回这个实例…