默认
发表评论 6
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
[已回复] 当断网的时候执行登录代码 ,然后连上网后,就不能自动重新登录了?
阅读(37687) | 评论(6 收藏 淘帖
在不能和服务器进行ping通的情况下(也就是断网的情况下),
执行登录代码,
// 设置AppKey
        ConfigEntity.appKey = PropertiesUtils.imServerProp.getProperty("ConfigEntity.appKey");
        // 设置服务器ip和服务器端口
        ConfigEntity.serverIP = PropertiesUtils.imServerProp.getProperty("ConfigEntity.serverIP");
        ConfigEntity.serverUDPPort = Integer
                .parseInt(PropertiesUtils.imServerProp.getProperty("ConfigEntity.serverUDPPort"));
        ClientCoreSDK.getInstance().setChatBaseEvent(chatBaseEventImpl);
        ClientCoreSDK.getInstance().setChatTransDataEvent(chatTransDataEventImpl);
        ClientCoreSDK.getInstance().setMessageQoSEvent(messageQoSEventImpl);
        // 自动登录
        
        new LocalUDPDataSender.SendLoginDataAsync(PropertiesUtils.usernamePasswordProp.getProperty("username"),
                PropertiesUtils.usernamePasswordProp.getProperty("password")) {
            @Override
            protected void fireAfterSendLogin(int code) {
                if (code == 0)
                    System.out.println("数据发送成功!");
                else
                    System.out.println("数据发送失败。错误码是:" + code + "!");
            }
        }.execute();

然后 连上网络后 ,客户端就不能自动重新进行连接了?
是否有这种情况存在?
应该如何解决?

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

标签:MobileIMSDK
上一篇:[已回复] 请教MobileIMSDK离线消息的推送问题下一篇:[已回复] 调用MobileIMSDK Android客户端下面的方法时返回203 代表什么意思?
推荐方案
评论 6
是的,断网的时候你第1次登陆请求都没有发出,怎么能让它自动登陆呢。。。
第一次陆路就不成功,直接告诉用户网络有问题,登陆失败,这是个很普遍的作法,不只是MobileIMSDK该这么做。
也就是说在第一次登录失败时,我可以在swt界面上放个按钮 ,可以让用户点击重新登录。
有好的办法吗?

在什么情况下(在哪块写代码?),我就应该在ui界面上放个重新登录的按钮 比较好?
当登录成功后 ,我就把重新登录的按钮删掉。
引用:吴佳同 发表于 2017-10-26 14:16
也就是说在第一次登录失败时,我可以在swt界面上放个按钮 ,可以让用户点击重新登录。
有好的办法吗?

你自已看看java版客户端的Demo,第一次登陆不成功会有超时界面弹出来,你参考这个逻辑来实现就行了
没找到超时界面,那个demo 里的代码方法太多,逻辑 太多。
new LocalUDPDataSender.SendLoginDataAsync(PropertiesUtils.usernamePasswordProp.getProperty("username"),
                                        PropertiesUtils.usernamePasswordProp.getProperty("password")) {
                                @Override
                                protected void fireAfterSendLogin(int code) {
                                        if (code == 0)
                                                System.out.println("登录数据发送成功!");
                                        else {
                                                System.out.println("登录数据发送失败。错误码是:" + code + "!。");
                                        }
                                }
                        }.execute();


这个方法调用之后, 需要等待几秒 ,才能重新调用这块代码?
我可以不给用户提供 重新登录的按钮  在第一次登录失败后,我可以每隔几秒调用一下登录代码。
每隔几秒调用,不会出问题?
刚才我测试了下,如果 连续调用这块代码 ,当有了网之后,服务器会收到很多登录的请求信息。

你直接看:MobileIMSDK/src_all/demos/MobileIMSDK4jDemoX/src/net/openmob/mobileimsdk/java/demo/LoginGUI.java文件里的OnLoginProgress子类的代码实现逻辑和使用逻辑即可。
感谢Jack
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部