默认
发表评论 7
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
你的逻辑需要优化:
肯定是先放入在线列表后,再删除原来的离线列表。考虑到极端情况下,如果在线列表加入失败,而你离线列表也已被删除,这该怎么办等等。你先删除后加的逻辑是不够健壮的。
评论 7
引用:柳老三 发表于 2017-09-27 22:10
客户端在什么情况会出现 尚未登录的信息? 是 响应包没有收到?还是有其它的判别方式?好像看代码只有这 ...

唯一的情况就是服务端的用户列表中没有它,但实际上它的session在MINA这一层还是正常的,极有可能是你错误地删除了。复现这个问题很简单,你就用一个客户端,针对性的测试的你的代码肯定可以复现,并找出问题的。
其实我想问的是,你为什么要弄两个列表呢。

你的需求其实可以这样:原先的列表还是那个列表,只是登陆的时候带上来的参数不一样(存到它在服务端的session里),当它的身份转换了之后,你更新这个session里的这个存的字段值内容,这样的话不就不需要改变整个算法框架了,难度要小多了。

至于你怎么用这个列表里的数据,你根据这个字段的值再来区分一下,这样的修改就要优雅多了。

我不清楚你具体要的是什么,但解决问题通常回归到本质就能找到最省事的方法,通常简单的就是最好的。一定不要搞复杂,否则会越来越复杂,直到失控。
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部