Android基于XMPP Smack openfire 开发的聊天室(五) 【邀请、被邀请】


1,邀请:

很简单的一句话,邀请的时候要传入被邀请者的JID,邀请信息可以为空。

 

[java] view plain copy print ?
  1. muc.invite(userjid, "进来我们聊妹子");  


 

简单的同时我们要知道它发生了什么,当这句话执行会向服务器发送一段报文,如下:

[html] view plain copy print ?
  1. <message  
  2.         from='[email protected]/desktop'  
  3.         to='[email protected]'>  
  4.       <x xmlns='http://jabber.org/protocol/muc#user'>  
  5.         <invite to='[email protected]'>  
  6.           <reason>  
  7.             进来我们聊妹子  
  8.           </reason>  
  9.         </invite>  
  10.       </x>  
  11.     </message>  


2,被邀请

被邀请呢,我们可以开个监听吧,要不要进房间先不判断了,我这里如果有邀请就直接进房间。有需要的朋友可以自己琢磨:

[java] view plain copy print ?
  1. MultiUserChat.addInvitationListener(Constants.conn,  
  2.                 new InvitationListener() {  
  3.                     // 对应参数:连接、 房间JID、房间名、附带内容、密码、消息  
  4.                     @Override  
  5.                     public void invitationReceived(Connection conn,  
  6.                             String room, String inviter, String reason,  
  7.                             String password, Message message) {  
  8.   
  9.                         Log.i(TAG, "收到来自 " + inviter + " 的聊天室邀请。邀请附带内容:"  
  10.                                 + reason);  
  11.   
  12.                         Intent intent = new Intent(MucService.this,  
  13.                                 ActivityMultiRoom.class);  
  14.                         intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  
  15.                         intent.putExtra("jid", room);  
  16.                         intent.putExtra("action""join");  
  17.                         startActivity(intent);  
  18.                     }  
  19.                 }); 

你可能感兴趣的:(android,XMPP)