默认
发表评论 9
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
[已回复] 还是关于MobileIMSDK的网络连接出错的疑问!
阅读(51117) | 评论(9 收藏 淘帖1
我想问下,除了网络不稳定外会产下以下这种情况外,还有没其他情况?我觉得有时候网络状态也挺不错的,但就提示网络出错。
E/ChatBaseEventImpl: 【DEBUG_UI】网络连接出错关闭了,error:-1

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

标签:MobileIMSDK
上一篇:[已回复] 急,急~~~我用MobileIMSDK写的IM收不到信息下一篇:[已回复] MobileIMSDK的iOS端退到后台能否一直保持连接?

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

推荐方案
评论 9
无线网络跟你平时理解的有线网络是有很大区别的,通常,在你网络状况非常稳定的情况下,PC上ping百度这样的网站,网络延迟可能恒定在30毫秒左右,几乎很少波动。同样如果是ping局域网,延迟几乎都是1毫秒以内,而且一定是很稳定的。

但在移动网络下,情况则完全不同,你可以做一个实验,在你“感觉网络非常稳定”的情况下,用pc去ping你的手机,即使是同一个局域网的情况下,你看看它的延迟是多少,而且波多有多大,实验完了你再回头看看你的问题我相信有不一样的认识。

做IM,尤其是移动端IM,切记不要凭主观感觉去评估网络状况,因为网络的波动和品质远不是你看的那样,而且跟以前的传统pc网络也有很大不同。

另外,由于路由器存在“端口老化”的问题,会让移动网通信问题变的更麻烦(尤其2G、3G、4G这样的无线运营商,网关资源更稀缺)。建议你看看这篇网络基础文章:http://www.52im.net/thread-50-1-4.html

论坛里的这几篇文章里都有提到所有谓的“NAT超时”,其实就是我上面说的端口老化问题,当然移动网络的问题远不止这些,你可以好好看看这几篇。《微信团队原创分享:Android版微信后台保活实战分享(网络保活篇)》:http://www.52im.net/thread-209-1-1.html
《移动端IM实践:实现Android版微信的智能心跳机制》:http://www.52im.net/thread-120-1-1.html

总之,我建议你科学客观地量化测试一下你手上的网络状况,再据此评估应用层的网络表现才有意义。移动端即时通讯,只要不是毫无原因的频繁掉线(比如,当你恰好处于一个信号盲区的时候,频繁掉线那也相当正常了),低频率的掉线都是很正常的。
《移动端IM开发需要面对的技术问题》:http://www.52im.net/thread-133-1-2.html,这一篇你也可以好好看看。
引用:JackJiang 发表于 2016-04-20 16:49
无线网络跟你平时理解的有线网络是有很大区别的,通常,在你网络状况非常稳定的情况下,PC上ping百度这样的 ...

两部手机测试,其中一部没发送一条信息就断一次网络~
ChatBaseEventImpl: 【DEBUG_UI】网络连接出错关闭了,error:-1
而且也是同一个网络!!其中一部手机还比较好点,这是什么情况
引用:hahacheng 发表于 2016-04-21 15:14
两部手机测试,其中一部没发送一条信息就断一次网络~
ChatBaseEventImpl: 【DEBUG_UI】网络连接出错关闭 ...

测试网络!测试网络!测试网络!

测试方法看我2楼回复。网络到底怎么样,不要光凭感觉。这个帖子里的2楼回复,也有说明:http://www.52im.net/thread-231-1-1.html
引用:JackJiang 发表于 2016-04-21 15:32
测试网络!测试网络!测试网络!

测试方法看我2楼回复。网络到底怎么样,不要光凭感觉。这个帖子里的2 ...

测试了哦~两端网络都是通的!!
引用:hahacheng 发表于 2016-04-21 18:32
测试了哦~两端网络都是通的!!

哎,心好累哦!IM开发~这又是什么原因
E/UDPUtils: 【IMCORE】send方法中》》发送UDP数据报文时出错了,原因是:sendto failed: ECONNREFUSED (Connection refused)
引用:hahacheng 发表于 2016-04-21 18:50
哎,心好累哦!IM开发~这又是什么原因
E/UDPUtils: 【IMCORE】send方法中》》发送UDP数据报文时出错了, ...

好吧,这是向服务端发送数据时出的问题吧,不知你的调试环境是如果部署的,这样的问题出现,只能说,你这测试环境不合格啊。你去查查ECONNREFUSED (Connection refused)这样的问题意味着啥哦。其实我想问下,测试的时候,你那服务端程序有运行起来吗?或者是ip地址变了吗。。。你这可是服务器啊,端到端通信来说,它是最容易进行通信的了,除非你的服务端程序压根没跑起来或者ip或端口有变。。
引用:JackJiang 发表于 2016-04-21 21:57
好吧,这是向服务端发送数据时出的问题吧,不知你的调试环境是如果部署的,这样的问题出现,只能说,你这 ...

两部手机ping服务器都ping通~有时候情况好些~基本不会出现短线重连情况!!糟糕起来,就是每发送一条信息,就重连一次!!还有就是好像在服务器开启IM很容易爆OOM,怎么内存一下就没了!直接把服务器搞死
引用:hahacheng 发表于 2016-04-22 09:15
两部手机ping服务器都ping通~有时候情况好些~基本不会出现短线重连情况!!糟糕起来,就是每发送一条信息 ...

如果是你描述的这种情况,我认为你的这个im服务端的代码实现、JDK环境、服务器环境可能哪个环节有问题,建议用jProfile好好查查。MobileIMSDK本身是非常轻量的,占用的内存比你平时写的其它程序都要小,即时吞吐量很大的时候,内存占用也都是正常范围,你看看这个帖子里我的暴力测试就知道了:http://www.52im.net/thread-57-1-1.html

而且,你现在的用户量根本就没有,压根还只是跑起来了而已,所以,这很不正常!

另外,不知你的Java用的是哪个版本,建议别下载最新的版本,对服务端程序而言,稳定才是第一位,下个java 1.6就够用了,关键是稳定!
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部