默认
发表评论 13
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
求助用MobileIMSDK-Web写的IM和APP IM连通却疑似丢包的疑问
web-im服务器和app-im的服务器都在本地,通过部署在阿里云服务器的rabbitmq连通。web-im使用webim的mq用户,app-im使用im的mq用户。当web-im向app-im发送消息时,出现大概率丢消息的现象。通过监控mq的消息发现,所有丢掉的消息其用户居然是guest,connection居然是127.0.0.1-->127.0.0.1.app-im服务端的mq配置:

求助用MobileIMSDK-Web写的IM和APP IM连通却疑似丢包的疑问_app-im-mq.png
web-im服务端的mq配置(统一都是使用的这个,确定没有别的地方修改):
求助用MobileIMSDK-Web写的IM和APP IM连通却疑似丢包的疑问_web-im-mq.png
mq消息监控
求助用MobileIMSDK-Web写的IM和APP IM连通却疑似丢包的疑问_error.png
求救求救啊!!!!


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

推荐方案
评论 13
引用:JackJiang 发表于 2018-05-31 10:36
我看你在qq上跟我聊的,思路比较混乱,追踪问题不够严谨,所以,请照我2楼的回复:先确保你每一条消都已经 ...

根据您2楼说的  一步步都走了  每条消息都到了MQ 求助用MobileIMSDK-Web写的IM和APP IM连通却疑似丢包的疑问_msg.png
签名: 该会员没有填写今日想说内容.
引用:JackJiang 发表于 2018-05-31 13:33
好,这至少证明web server -> MQ 这个方向,消息是肯定没有丢的,对吧。

那就接着下一步,先把Web Ser ...

日志看到了发过来的消息,但是丢失的消息都提示离线,可是明明不是离线的 求助用MobileIMSDK-Web写的IM和APP IM连通却疑似丢包的疑问_err1.png
同时,我还发现mq上app server同时创建了3个connection
求助用MobileIMSDK-Web写的IM和APP IM连通却疑似丢包的疑问_err2.png
这个跟我丢失消息的比例一样,收到1条后丢失2条,如此循环。这个会不会是导致丢失的原因?出现3个connection正常么?
签名: 该会员没有填写今日想说内容.
引用:JackJiang 发表于 2018-05-31 15:26
3个连接那个你不用管,对于RabhitMQ的客户端lib或RabbitMQ服务端来说,应该是存在一个复用的连接池的概念 ...

那个空指针就是因为对方用户不在app server登录造成的,那只是catch到的exception,这个只会造成发送离线推送失败而已。
求助用MobileIMSDK-Web写的IM和APP IM连通却疑似丢包的疑问_err3.png
从session去用户登录信息取不到
求助用MobileIMSDK-Web写的IM和APP IM连通却疑似丢包的疑问_err4.png
签名: 该会员没有填写今日想说内容.
引用:JackJiang 发表于 2018-05-31 15:52
好了,我们来理一下思路,代码走到这里了,是不是意味着消息没有丢,已经被你app server的代码接管对不? ...

当时app是在线的,我一直没动app,只是保持手机一直点亮防止进入后台导致离线。连续发送的消息,一直都是收到1条,接下来2条收不到,循环反复。这个时候如果app离线,那也不应该之后会收到消息啊。总不会收到1条后自己离线然后再2条再次自己上线吧。。。。而且,还发生了我从app发送一条消息,web同时收到3条一样的消息,fp一样的,消息体也是一模一样。重复消息没一直重现,昨天出现的,后来又好了。
签名: 该会员没有填写今日想说内容.
引用:JackJiang 发表于 2018-05-31 16:17
你还是没有理解我回复这么多的目的,我要让你理解的是,消息到底去哪里了,需要一个环节一个环节来核对, ...

好的,受教了!
消息过来之后,如果app在线是收到消息,没有丢。
签名: 该会员没有填写今日想说内容.
引用:JackJiang 发表于 2018-05-31 17:05
好了,既然服务端没有丢,那是在哪个环节丢的,该看接收端的Log了。你按我的思路就这么排查,一定能找出 ...

好吧,我再好好查查。感谢你的耐心指导,有问题再麻烦您。
签名: 该会员没有填写今日想说内容.
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部