asmack小问题集锦

1.连接超时:

除了网络故障(有些公司的服务器拦截外部ip访问的),还可能是你的openfire服务器默认了安全链接,把你的请求过滤了。


2.:Not connected to server

public static void disConnection() {
        if (null != con) {
            con.disconnect();
            con = null;
        }
    }

会释放连接的资源,登录状态改为离线。

然后更改接受离线消息,把它注释掉,这样就可以了。

	/**
	 * 离线消息
	 */
	private void getOffLine() {
		// new Thread() {
		// public void run() {
		// List<org.jivesoftware.smack.packet.Message> msglist = ConnecMethod
		// .getOffLine();
		// for (org.jivesoftware.smack.packet.Message msg : msglist) {
		// // 将离线消息保存到数据库
		// // ConnecMethod.saveTalkMsgSQL(msg.getFrom(), msg.getTo(),
		// // msg.getBody());
		// }
		// };
		// }.start();
	}


3.用手机端和pc端spark发送的资源名是不同的:

手机端: 服务器 +"Smack"

spark:服务器+”spark“+版本号

填写错误的话,也许就不能收到消息了。


4.接受在线消息的监听:

ChatManager cm = XmppTool.getConnection().getChatManager();
		cm.addChatListener(new ChatManagerListener() {
			@Override
			public void chatCreated(Chat chat, boolean able) {
				chat.addMessageListener(new MessageListener() {
					@Override
					public void processMessage(Chat chat2, Message message) {
						// example: ssssadmin@coboqo/Spark 2.6.3
						// 同时会拦截离线的消息
						Log.d("connectMethod:getOnLine()", message.getBody()
								+ message.getFrom() + message.getTo());
						saveTalkMsgSQL(message.getFrom(), message.getTo(),
								message.getBody());
						sendBroadcastMsg(context, message.getFrom());
					}
				});
			}
		});

其实,也可以收到离线消息,如果你在接受离线消息处理的时候,发现你收到了两次同样的消息,那么应该就是这个问题了。

5.如果在模拟器和真机之间测试传输文件没有问题,而在真机之间传输文件出现问题,先查看下你的真机是否都是连接的同一个wifi。如果是的话,你尝试下载不同的wifi下,真机之间传输文件吧。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值