请选择 进入手机版 | 继续访问电脑版

默认
发表评论 2
[已回复] 求教同一账号、不同设备、同时登陆强制下线的优化方法
安卓和IOS存在:同一账号,在多台设备同时登陆的问题,想要改成同一账号只能同时在唯一一台设备上登陆,其他设备强制下线?

即时通讯网 - 即时通讯开发者社区! 来源: - 即时通讯开发者社区!

标签:RainbowChat
上一篇:[已回复] 求RainbowChat安卓端模仿QQ实现未读消息数的显示方法下一篇:[已回复]求教RainbowChat的android端自定义发送消息的问题
推荐方案
评论 2
这个需求,可以在MobileIMSDK这一层来优化,方法就是在第二个设备上登陆时,服务端发现该账号的会话已存在时,就先踢出之前的会话(先发一个踢出指令,后断开会话),然后再继续正常流程。

这里面有一个难点,就是因为是udp协议,所以最坏的情况下,万一踢出前一个账号时,踢出指令丢了,那就有点麻烦。这个可以建议加一个时间戳,当前一个会话没有收到被踢指令,尝试重连时,带上这个时间戳,服务端比对出这个时间戳比第2个设备上的时间戳早,就意味着这是个已被废弃的会话,再重发给他被踢指令即可。

以上大致的思路就是这样,仅供参考。这个优化可以直接在mobileimsdk的demo里优化好,测试没问题后打jar使用即可,这样方便测试。
签名: 每天真累
重连的时候带上时间戳,确实能解决这个问题,下一个版本里面能不能带上时间戳,我怕我去改源码,反而改烂了,,因为我现在重连的代码在哪儿实现的,都不知道,,,,
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部