删除心跳过期的这里有问题
来源:7-17 IM系统的心跳功能实现
慕仔0355870
2023-08-26
客户端都不能发送心跳了,怎么还会进来心跳处理类里删除过期的心跳呢?心跳这里不应该是服务端开一个线程定时去删除心跳过期的客户端吗
写回答
1回答
-
Danny_Idea
2023-08-26
这是个很好的问题,比较细节。
正常来说 客户端主动断线,可以通过特殊的断线信号包来通知到服务端。但是有些异常情况下,可能因为网络不同,导致这个断线包无法正常发送到服务端,所以这类方案会有问题。
因此在后边的一个章节中,我又对这种实现手段做了一次改善,通过利用netty的channelInactive接口去监听连接是否断开,在断开的时候,移除相关记录,可以继续往后再后看看。
00
相似问题