默认
发表评论 1
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?别走弯路了... 找站长给点建议
[已回复] 求教MobileIMSDK客户端频繁周期性掉线,大概每隔11-12秒固定频率
阅读(301) | 评论(1 收藏 淘帖1
服务端部署在阿里云服务器,android端sdk是正常在线的,java客户端会存在固定频率掉线问题,查不到是什么原因
服务端的日志如下:2026-05-14 15:13:40.835 INFO 50897 --- [ool-4-thread-87] n.o.m.server.ServerCoreHandler : [IMCORE]{uid:zh}/111.194.237.248:47125的会话已关闭(user_id=zh)了...2026-05-14 15:13:40.835 INFO 50897 --- [ool-4-thread-87] n.o.m.server.ServerCoreHandler : .......... 【0】[当前正在被关闭的session] session.hashCode=351622642, session.ip+port=/111.194.237.248:471252026-05-14 15:13:40.835 INFO 50897 --- [ool-4-thread-87] n.o.m.server.ServerCoreHandler : .......... 【1】[处于在线列表中的session] session.hashCode=54093816, session.ip+port=/111.194.237.248:271202026-05-14 15:13:40.836 WARN 50897 --- [ool-4-thread-87] n.o.m.server.ServerCoreHandler : [IMCORE]【2】【注意】会话{uid:zh}/111.194.237.248:47125不在在线列表中,意味着它是被客户端弃用的,本次忽略这条关闭事件即可!{51={10002=GpsDataInfo{Z=129.0, L=116.34273, B=39.984736, Speed=4.3, T=1778740606439}}, 52={10002=GpsDataInfo{Z=128.0, L=116.342741, B=39.984219, Speed=11.6, T=1778742819197}}}{51={10002=GpsDataInfo{Z=129.0, L=116.34273, B=39.984736, Speed=4.3, T=1778740606439}}, 52={10002=GpsDataInfo{Z=128.0, L=116.342741, B=39.984219, Speed=11.6, T=1778742819197}}}{51={10002=GpsDataInfo{Z=129.0, L=116.34273, B=39.984736, Speed=4.3, T=1778740606439}}, 52={10002=GpsDataInfo{Z=128.0, L=116.342741, B=39.984219, Speed=11.6, T=1778742819197}}}{51={10002=GpsDataInfo{Z=129.0, L=116.34273, B=39.984736, Speed=4.3, T=1778740606439}}, 52={10002=GpsDataInfo{Z=128.0, L=116.342741, B=39.984219, Speed=11.6, T=1778742819197}}}{51={10002=GpsDataInfo{Z=129.0, L=116.34273, B=39.984736, Speed=4.3, T=1778740606439}}, 52={10002=GpsDataInfo{Z=128.0, L=116.342741, B=39.984219, Speed=11.6, T=1778742819197}}}{51={10002=GpsDataInfo{Z=129.0, L=116.34273, B=39.984736, Speed=4.3, T=1778740606439}}, 52={10002=GpsDataInfo{Z=128.0, L=116.342741, B=39.984219, Speed=11.6, T=1778742819197}}}2026-05-14 15:13:42.633 INFO 50897 --- [ool-4-thread-87] n.o.m.server.ServerCoreHandler : [IMCORE]<< 收到客户端{uid:10002}/114.246.238.127:33630的通用数据发送请求.2026-05-14 15:13:42.877 INFO 50897 --- [ool-4-thread-87] n.o.m.server.ServerCoreHandler : [IMCORE]<< 收到客户端{uid:10003}/111.194.237.248:59115的通用数据发送请求.{51={10002=GpsDataInfo{Z=129.0, L=116.34273, B=39.984736, Speed=4.3, T=1778740606439}}, 52={10003=GpsDataInfo{Z=0.0, L=116.342762, B=39.984338, Speed=0.0, T=1778742822329}}}{51={10002=GpsDataInfo{Z=129.0, L=116.34273, B=39.984736, Speed=4.3, T=1778740606439}}, 52={10003=GpsDataInfo{Z=0.0, L=116.342762, B=39.984338, Speed=0.0, T=1778742822329}}}{51={10002=GpsDataInfo{Z=129.0, L=116.34273, B=39.984736, Speed=4.3, T=1778740606439}}, 52={10003=GpsDataInfo{Z=0.0, L=116.342762, B=39.984338, Speed=0.0, T=1778742822329}}}{51={10002=GpsDataInfo{Z=129.0, L=116.34273, B=39.984736, Speed=4.3, T=1778740606439}}, 52={10003=GpsDataInfo{Z=0.0, L=116.342762, B=39.984338, Speed=0.0, T=1778742822329}}}{51={10002=GpsDataInfo{Z=129.0, L=116.34273, B=39.984736, Speed=4.3, T=1778740606439}}, 52={10003=GpsDataInfo{Z=0.0, L=116.342762, B=39.984338, Speed=0.0, T=1778742822329}}}{51={10002=GpsDataInfo{Z=129.0, L=116.34273, B=39.984736, Speed=4.3, T=1778740606439}}, 52={10003=GpsDataInfo{Z=0.0, L=116.342762, B=39.984338, Speed=0.0, T=1778742822329}}}2026-05-14 15:13:44.545 INFO 50897 --- [agramAcceptor-1] n.o.m.server.ServerCoreHandler : [IMCORE]与{uid:null}/111.194.237.248:27130的会话建立(sessionCreated)了...2026-05-14 15:13:44.545 INFO 50897 --- [ool-4-thread-85] n.o.m.server.ServerCoreHandler : [IMCORE]与{uid:null}/111.194.237.248:27130的会话(sessionOpened)打开了...2026-05-14 15:13:44.545 INFO 50897 --- [ool-4-thread-87] n.o.m.server.processor.LogicProcessor : [IMCORE]>> 客户端{uid:null}/111.194.237.248:27130发过来的登陆信息内容是:loginInfo=zh|getToken=1234562026-05-14 15:13:44.545 INFO 50897 --- [ool-4-thread-87] c.z.i.imserver.ServerEventListenerImpl : -----------收到用户登录消息-----------2026-05-14 15:13:44.545 INFO 50897 --- [ool-4-thread-87] c.z.i.imserver.ServerEventListenerImpl : 用户名: zh2026-05-14 15:13:44.545 INFO 50897 --- [ool-4-thread-87] c.z.i.imserver.ServerEventListenerImpl : 密码: 1234562026-05-14 15:13:44.545 INFO 50897 --- [ool-4-thread-87] c.z.i.imserver.ServerEventListenerImpl : 机号ID: null---------------------------------------用户登录成功,id: zh已经成功登陆2026-05-14 15:13:44.609 INFO 50897 --- [ool-4-thread-87] n.o.m.server.ServerCoreHandler : [IMCORE]<< 收到客户端{uid:zh}/111.194.237.248:27130的ACK应答包发送请求.

使用的SDK版本为: MobileIMSDK v6.5版,发布于2024年04月29日。
网络环境:服务端是阿里云,java客户端内外网都会掉线,android端是4G或者手机热点
我看到源码里有这样的描述:现象也是周期性掉线
if(user_id != null)
{
   //## Bug FIX: 20171211 START
   // [bug的现象是:客户端在某种几小几率下出现每隔21秒的周期性掉线问题。原因是它的当前会话在
   // 它前一个被废弃的会话(可能是客户端网络原因)超时后错误地将当前会话从在线列表移除而导致
   // 的。加上此判断后,意味着被close的会话要从在线列表中移除时必须保证移除的是该会话本身,这
   // 样就排除了客户端在极端网络情况下发起的新会话不会因此废弃的会话超时时而把新会话错误地从在
   // 线列表中移除的问题,从而解决此bug
   //
   // [产生此bug的根本原因是:在线列表中的keyuser_id,而同一个user_id发起的新会话,在在线列表
   // 中被放入时的逻辑时只覆盖之前的会话,而未close掉(之所以这么做是为了方便以后做多点登陆功能),
   // 而且在线列表就这么实现的话,当前来说并没有什么问题。
   if(sessionInOnlinelist != null && session != null && session == sessionInOnlinelist)
   //## Bug FIX: 20171211 END
   {
java客户端的截图现在还没有,我先把帖子发上,后续补充,想请问下这种问题应该如何排查,从哪里开始分析,因为好几年了,有的地方我都忘了

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

上一篇:[已回复] MobileIMSDK中有Protocol这个协议,为什么又要有其他的C端和 S 端协议呢

本帖已收录至以下技术专辑

推荐方案
评论 1
如果是非常规律地问隔断线,你就检查一下客户端跟服务端的心跳间隔是否设置的是一致的,不一致就会规律性定时掉线。

服务端设置心跳间隔的是这个API:http://docs.52im.net/extend/docs ... lKits.SenseModeTCP-

客户端不知道你用的是什么端,也有对应的api,去检查一下!
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部