websocket心跳机制

作为一种双工通讯的协议,websocket在服务端与客户端保持一个长链接,但当我们使用nginx等反向代理中间件时,每隔60秒左右会检查长链接的活动状态,当在一个60秒的周期内没有通讯(发送数据)是,链接会被断开。所以使用websocket必须实现一种定期检测机制,在tomcat-websocket和spring-websocket中,都提供了Ping-Pong消息。

工作过程是:1、服务端发送PingMessage,2、浏览器接受后自动回复一条PongMessage;3、服务端在OnMessage方法中,处理PongMessage(一般来讲不需要做任何操作)。只有这样才能保持链接处于alive状态。

在工作中,我曾经使用定时发送TextMessage到客户端,如果客户端不重新发送回来,则协议上仍认为只是单向连接相通的,Nginx仍会掐断连接。

综上,为了简单起见,何不直接使用浏览器的方案呢?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值