public ConcurrentHashMap<String,Channel> pcChannels = new ConcurrentHashMap<>();//保存pc端的channel
public ConcurrentHashMap<String,Channel> webChannels = new ConcurrentHashMap<>();//保存web端的channel
public ConcurrentHashMap<String,Long> heartbeat = new ConcurrentHashMap<>();//将存活的连接保存起来现在的问题是这样存的话,如果客户端异常离线,服务端如何知道,map如何清除已经失效的连接
我现在的做法是,接受到客户端的心跳消息就修改heartbeat的时间戳。在服务端开启一个定时任务,定时循环heartbeat
如果心跳时间戳超过3分钟没有接受到某个连接的心跳消息,就把三个map里的对应key的数据清除。这样做是不是不妥啊。
常规操作是怎么样的。