2881099 / FreeIM

.NETCore websocket 实现简易、高性能、集群即时通讯组件,支持点对点通讯、群聊通讯、上线下线事件消息等众多实用性功能.
MIT License
1.42k stars 418 forks source link

如何清理online表的无效数据? #52

Closed dmhai closed 1 year ago

dmhai commented 1 year ago

似乎是因为im服务器意外停止(或者其他原因),客户端下线之后,server未能在online表删除对应记录, 重启Im服务器之后,出现很多假的在线用户,本想设置15s过期时间,然后用心跳不断延长过期来解决, 可online表无法单独设置每个clientId的过期时间

能否设计一个妥善的处理机制?

2881099 commented 1 year ago

refis.HDel($"{_redisPrefix}Online")

ImServer 启动时,做一下这个操作

2881099 commented 1 year ago

你可以用 keys *Online 查看对应的 key 他是一个固定值,提前确定即可,不用运行时查询。

dmhai commented 1 year ago

感谢回复,我再好好考虑下有没有其他思路。这个就结了