websocket协议

协议概述

《RFC 6455 - The WebSocket Protocol》

协议地址:https://datatracker.ietf.org/doc/html/rfc6455

一、包格式

二、数据传输单位为帧(Frame)

三、是否需要处理粘包和半包问题

从协议本身看不需要,因为传送的单位是帧,已经从底层去处理,具体的开发库有可能有问题

四、websocket的心跳检测(heartbeat)

假活着状态。尽管 WebSocket 在正常关闭连接时会触发 close 事件,但在某些异常情况下(如设备断电、网络中断、网络切换(WiFi切换到4G)、路由器重启、NAT 或防火墙超时断开连接等),该事件可能不会及时触发,甚至不会触发。此时连接已实际断开,但应用层仍误以为其存活。

为什么服务器端和客户端都需要各自的心跳机制?服务器端在复杂的网络环境中,同样无法主动感知各个客户端是否存活,因此也需要发送心跳,通过确认客户端的响应来判断其存活状态,从而处理服务器端的连接管理逻辑。

心跳机制的本质。判断连接是否真正存活的唯一可靠方式,就是看客户端发出的消息服务器能否收到并及时回应。心跳机制的本质,就是模拟这种消息收发的过程,理解这一点,也就真正理解了心跳的意义。

 客户端和服务端的心跳机制。

1、服务端和客户端都有一套独立的心跳机制,两者独立运行。

2、服务端的心跳检测目的。服务器端的 ping/pong 是 WebSocket 协议层的自动机制,主要用来让服务器监测客户端的连接状态,处理服务器端的连接管理逻辑。

3、客户端的心跳检测目的。而客户端的心跳是应用层的自定义机制,需要开发者自行实现,帮助客户端感知自身连接状态,处理客户端自身的连接管理逻辑。

4、是否需要自己实现。在websocket中,服务端已自实现,在客户端需要开发者自行实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值