默认
发表评论 8
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
[已回复] 为何我的MoboleIMSDK客户端发送的信息接收方收不到?
我开发IM的时候,为什么客户端A将信息发送出去了。B客户端怎么接收不了!!这是什么情况呢?


还有发送完会跑出这句话:W/QoS4SendDaemon: 【IMCORE】【QoS】指纹为b34c2aeb-0e7a-4356-a9e0-3f651b8b8d5f的消息已成功从发送质量保证队列中移除(可能是收到接收方的应答也可能是达到了重传的次数上限),重试次数=3
这句话是不是说没成功发出去?

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

标签:MobileIMSDK
上一篇:[已回复] 请问,MobileIMSDK的 lib分发jar包有maven库吗?下一篇:[已回复] 急,急~~~我用MobileIMSDK写的IM收不到信息

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

推荐方案
评论 8
你这个Log已经很明显能说明问题了:消息没有被成功收到或者消息已收到但不能成功发出应答!这通常就是你的测试网络环境没有全向搞通的问题!

至于你发送消息时的返回值是“消息发送成功”,我给你解释一下:
因为UDP的无连接特性,这里的“消息发送成功”,意味着已将UDP数据报成功送出,但至于对方有没有收到,发送方是不能同步知道的(所以就需要应答机制了,当然基于IM的技术逻辑特殊性,TCP也同少不了应答机制)。所以,这里的“发送成功”准确地说应该叫“数据发出成功(而非接收成功)”。

总之,你的问题是你的B端无法接收数据、或者能接受数据但不能发出应答包。你需要把你的测试环境诊断一下,确保:A\B端都能正常地与服务器进行双向通信。

何为双向通信?
就是A能发服务端、服务端也能发A,对B也是一样。
1)诊断客户端到服务端网络是否正常,你可以用论坛里的工具进行测试:http://www.52im.net/thread-145-1-1.html
2)诊断服务端与到客户端网络是否正确,请在服务端端ping客户端的ip就知道了。这个帖子里的问题跟你的类似,可以完整的看看帖子回复就能知道怎么做了:http://www.52im.net/thread-211-1-1.html
引用:JackJiang 发表于 2016-04-18 10:54
你这个Log已经很明显能说明问题了:消息没有被成功收到或者消息已收到但不能成功发出应答!这通常就是你的 ...

我测试了啊,两端网络都是互通的哦!
引用:JackJiang 发表于 2016-04-18 10:54
你这个Log已经很明显能说明问题了:消息没有被成功收到或者消息已收到但不能成功发出应答!这通常就是你的 ...

我这个信息问题,有没可能是udp协议造成的!可靠性没那么强,出现数据丢失
引用:hahacheng 发表于 2016-04-18 15:51
我这个信息问题,有没可能是udp协议造成的!可靠性没那么强,出现数据丢失

你这个根本不是丢,就是网络没通。

UDP协议本身丢包并没有想象的那么大。在你TCP正常表现的情况下,UDP的丢包几率你可以认为是百分之一。

举个例子:
1次发送加上3次重传都没成功,那几乎不可能是UDP协议自身的丢包原因。 最坏的情况下,假设UDP的丢包几率10分之一,即0.1(实现上UDP天生丢包还可以加一个小数点,没那么夸张的理论丢包率),那么你的丢包几率就是0.0001了,也就是可靠性是99.99%,4个9了,这种情况下还丢包,只能说你可以去买彩票了。

而且这假设是在相当糟糕的情况下,且讨论的是移动端的UDP(PC端的UDP在WIFI或有线的情况下那就更可靠了!)。

引用:hahacheng 发表于 2016-04-18 15:42
我测试了啊,两端网络都是互通的哦!

你有勇气把完整的ping信息发出来吗?

1)A到server的ping信息;
2)server到A的ping信息;
3)B到server的ping信息;
4)server到B的ping信息。


同时把A、Sever、B的IP地址也帖出来。我几乎可以肯定的是A端和服务端是没有问题的,问题就在B端哦!
引用:JackJiang 发表于 2016-04-18 16:16
你有勇气把完整的ping信息发出来吗?

1)A到server的ping信息;

我这个是客户端连上wifi后手机地址ping服务器地址哦,这就是服务器与客户端之间不通?那这个怎么解决?

QQ图片20160426113916.png (100.7 KB, 下载次数: 2986)

QQ图片20160426113916.png
引用:hahacheng 发表于 2016-04-26 11:40
我这个是客户端连上wifi后手机地址ping服务器地址哦,这就是服务器与客户端之间不通?那这个怎么解决?

图上面的感叹号就表示没有ping通。你这手机跟服务器网络根本就不通。

这种基本的手机和服务器网络问题你只能自已去解决了,要么是手机压根就上不了网,要么是服务器有防火墙没开发端口等等原因。程序员对这些基本的问题还是应具备解决能力的,这种问题只能靠你自已了
引用:hahacheng 发表于 2016-04-26 11:40
我这个是客户端连上wifi后手机地址ping服务器地址哦,这就是服务器与客户端之间不通?那这个怎么解决?

刚我也试了用手机去ping你那个demo服务器地址也出现和这个图一样的结果,但是都能发送和接收信息
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部