asmack-Android 基于openfire开发的报错问题:Already Login to Server

问题描述

Android 基于openfire开发的报错问题:Already Login to Server

在Android 客户端开发openfire即时聊天的时候,需求中有切换不同的用户的要求。

(注册用户没有问题)
登录的时候我是这样做的:connectServer-->login

下线的时候我是这么做的:disConnectServer

如果是有一个用户切换到另外一个用户,那么我是这样做的:disConnectServer-->connectServer-->login

由于网络等原因,会出现这样的情况,导致程序闪退:1.not connect to server 2.Already login to server

情况1、2出现的语句都是在login的时候。(ps:我在网络断开后重新连接网络时会去进行重新登录连接,我加了断线重连的监听,但是网络断线恢复后自动重新连接上的速度很慢,所以就自己手动重连)

所以想问一下,如何安全的确保已经成功连接上服务器的时候去登录、或者已经登录过了,那么就不再去登录

附1:登录代码
`

if (!xmppTool.isConnectedServer()) {
                    xmppTool.connServer();
                }
if (xmppTool.isConnectedServer() && !xmppTool.getCon().isAuthenticated()) {
                    xmppTool.login(name, PWD);

`

附2:下线代码

if (xmppTool.isConnectedServer())
xmppTool.disConnectedServer();

附3:切换用户代码:

if (xmppTool.isConnectedServer())
    xmppTool.disConnectedServer();

`if (!xmppTool.isConnectedServer()) {
                    xmppTool.connServer();
                }
if (xmppTool.isConnectedServer() && !xmppTool.getCon().isAuthenticated()) {
                    xmppTool.login(newName, PWD);

`

解决方案

这个需要服务端写插件!
1.在切换用户的时候,需要判断切换的用户是否已经登录
2.登录后,需要做相关处理。现有的openfire是不能两个用户同时登录,否则导致一个用户收不到用户信息

时间: 2024-09-18 08:39:40

asmack-Android 基于openfire开发的报错问题:Already Login to Server的相关文章

Android基于Openfire开发即时通讯工具(4)获取好友列表

上节已经在openfire服务器中建立了组, 开发即时通讯工具(4)获取好友列表-openfire即时通讯"> 这节继续看怎样获取好友列表, 通过connection对象得到roster,从而可以使用roster.getGroups()得到所有组,使用group.getEntries()得到组中所有的用户 <span style="white-space:pre"> </span>//获取好友列表 Roster roster = connecti

Android基于Openfire开发即时通讯工具(2)登录openfire

上节openfire服务器已经搭建完成,这节看看,怎么使用smack基于xmpp协议登录openfire服务器, 在服务器中创建好测试的账号 开发即时通讯工具(2)登录openfire-openfire即时通讯"> 下面看android客户端的代码,关于界面布局就不多说了,可以参考QQandroid客户端的界面: Android高仿QQ登录界面 http://blog.csdn.net/vestigge/article/details/8124674 至于为什么要仿别人的东西,不是喜欢山寨

Android基于Openfire开发即时通讯工具(1)搭建openfire服务器

采用openfire作为服务器,这样不需要再写一个服务器,会节省不少事情,openfire经过简单的配置就可以实现一个通信服务器的基本功能, Openfire 采用Java开发,开源的实时协作(RTC)服务器基于XMPP(Jabber)协议. XMPP 一种基于XML的协议,它继承了在XML环境中灵活的发展性.因此,基于XMPP的应用具有超强的可扩展性.经过扩展以后的XMPP可以通过发送扩展的信息来处理用户的需求,以及在XMPP的顶端建立如内容发布系统和基于地址的服务等应用程 序.而且,XMPP

Android基于Openfire开发即时通讯工具(3)建立好友列表

通过roster可以获得好友列表,前提是在服务器中建立了好友列表, 不然没有的话,不会获取全部用户的,roster.getEntries()的size将会为0. 下面来看看怎么在openfire服务器中,建立好友列表. 首先创建一些用户: 开发即时通讯工具(3)建立好友列表-openfire即时通讯"> 然后创建一个组,在组中加入一些成员:

android基于天地图开发遇见的问题

问题描述 android基于天地图开发遇见的问题 这是activity界面的代码: package com.example.tianditu; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import com.tianditu.android.maps.GeoPoint; import com.tianditu.android.maps.MapActivity; import

android 启动报错-Android 运行程序有时候经常报错adb

问题描述 Android 运行程序有时候经常报错adb The connection to adb is down, and a severe error has occured. [2013-09-10 16:08:44 - QualityPicture_Client1.3.1.5] You must restart adb and Eclipse. [2013-09-10 16:08:44 - QualityPicture_Client1.3.1.5] Please ensure that

android程序,eclipse没报错,但是运行会意外停止

问题描述 android程序,eclipse没报错,但是运行会意外停止 本人刚开始学习android,跟着书写了个程序,这个程序是会有一个东西随着手指拖动而移动,编译完没有问题,但是在手机上运行的时候却是意外停止,错误显示在了MainActivity的第27行,我真不知道哪里错,代码和书上写的一模一样,求大神指导 MainActivity的代码: package com.example.test34; import android.app.Activity; import android.os.

ndk ndroid tudio jni-AndroidStudio中开发ndk报错,求助!!!

问题描述 AndroidStudio中开发ndk报错,求助!!! D:workspacesAndroidProjectsGISpeechappsrcmainjniHTKLibexcpt.h:20:21: fatal error: crtdefs.h: No such file or directory #include <crtdefs.h> as 的项目中使用ndk 开发,其中有些 c 文件中引用了一些 系统平台下的 h 文件,在 vs2010 中可以调通,但是加入到 jni 中就报错,请问

新手-android程序,eclipse没报错,但是运行会意外停止

问题描述 android程序,eclipse没报错,但是运行会意外停止 本人刚开始学习android,跟着书写了个程序,这个程序是会有一个东西随着手指拖动而移动,编译完没有问题,但是在手机上运行的时候却是意外停止,代码和书上写的一模一样,求大神指导 DrawView.java的代码:/** * */package com.example.customview; import android.content.Context;import android.graphics.Canvas;import