默认

[已解决] MobileIMSDK因安卓端网络事件广播延迟导致登陆失败

查看数: 48222 | 评论数: 4 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2017-05-21 23:49

正文摘要:

在我的demo中,先启动MainActivity.java在里面判断是否是第一次登陆(登陆到我自己的服务端不是这个IM服务端),不是的话直接转到PagerActivity.java并在onCreate里连接IM服务端,代码见附件一(没有判断登陆状态)&nb ...

评论

hfyyqmz 发表于 8 年前
引用:JackJiang 发表于 2017-05-22 11:21
是的,Android的系统广播事件(比如网络连接事件)的发出是有延迟的,原因是Android系统的事件通知优先级 ...

知道了,谢谢,我太小白了。。
JackJiang 发表于 8 年前
引用:hfyyqmz 发表于 2017-05-22 10:37
我刚刚发现问题了,正常下可以建立通信的,但是这种情况下send了登陆请求之后,才收到网络连接的broadcas ...

是的,Android的系统广播事件(比如网络连接事件)的发出是有延迟的,原因是Android系统的事件通知优先级很低,它的发送实时性是没有保证的。

建议MobileIMSDK的初始化尽可能的早做(主要是为了让那个网络事件广播监听代码尽早被注册好),比如放在Application里调用:
[已解决] MobileIMSDK因安卓端网络事件广播延迟导致登陆失败_WX20170522-111848@2x.png

hfyyqmz 发表于 8 年前
引用:JackJiang 发表于 2017-05-22 10:27
你写这么多字,也不排个版,看起来真累。不过我看明白你的问题了。

你的问题很典型,很多移动端搞网络编 ...

我刚刚发现问题了,正常下可以建立通信的,但是这种情况下send了登陆请求之后,才收到网络连接的broadcast,于是关闭socket,导致了服务端无法发送给客户端信息,我把具体情况写在补充里面了。

谢谢回答
JackJiang 发表于 8 年前
你写这么多字,也不排个版,看起来真累。不过我看明白你的问题了。

你的问题很典型,很多移动端搞网络编程的人刚开始都会遇到。
你描述的问题的原因,其实在于:你客户端能把数据发给服务端,但服务端不能把数据发回来!

如何诊断是否是服务端不能把数据发给客户端呢?
你可以拿到客户端的ip,在服务端的机器上ping客户端,看看能不能通,根据你描述的问题,我认为它应该是不通的。如果是这样,你就要解决你局域网内手机和服务器的网络通信问题,查查路由器的设置什么的。

返回顶部