asmack消息接收

http://www.myexception.cn/android/453233.html


Android之asmack通信客户端

     最近用asmack做一个android的手机客户端(openfire做服务器),操蛋啊,一开始connect服务器都失败,这个再PC端运行得好好的,一到手机端就卡住了,泪奔啊。

    后来发现要在c盘sysytem32文件夹的driver文件夹的host文件修改域名映射,终于connect上服务器了,心里好高兴了一阵子。靠,才发现,悲剧才刚刚开始,后来出现chat.addMessageListener(...)接收不到消息,阻塞不通,心想:完了完了,消息都监听不了。上网查了好久好久(不记得有多久了),终于发现“还有”一个消息的方法,又兴奋了好一阵子。

 消息监听代码实现:

// 监听消息接收
		XmppConn.connection.addPacketListener(new PacketListener() {

			public void processPacket(Packet packet) {

				Message message = (Message) packet;

				System.out.println("收到消息" + message.toXML());
},null);

要问为什么addMessagelistener不管用,实话说,我也不知道,网上说这是asmack的一个bug。

 

好了有了这个方法,实现一对一聊天的基本功能就足够了。

OK,这个手机端不能这么锉吧,然后就添加多人聊天功能,也就是会议吧,这个网上资料多的是,基本都是下面的代码的样子:

MultiUserChat.addInvitationListener(connection,
		new InvitationListener() {
			public void invitationReceived(Connection conn,
					String room, String inviter, String reason,
					String password, Message message) {
				MultiUserChat multiUserChat = new MultiUserChat(conn,
						room);
				System.out.println("收到来自 " + inviter
						+ " 的聊天室邀请。邀请附带内容:" + reason);
       }
}

 原来我就是这么实现的,而且在PC端运行时畅通无阻啊,但是到了android这边,这个想法就太天真了,我发现程序直接把这段代码忽视了,哎这可怎么办?思前想后,还是用addPacketListener的方式来搞吧,直接导致的结果是:苦力啊~~自己写方法来把接收到的信息解析出来,这里面的工作量~~你懂的。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值