Android基於XMPP Smack openfire 開發的聊天室(五) 【邀請、被邀請】

yangxi_001發表於2014-03-05

1,邀請:

很簡單的一句話,邀請的時候要傳入被邀請者的JID,邀請資訊可以為空。

 

  1. muc.invite(userjid, "進來我們聊妹子");  


 

簡單的同時我們要知道它發生了什麼,當這句話執行會向伺服器傳送一段報文,如下:

  1. <message  
  2.         from='crone1@shakespeare.lit/desktop'  
  3.         to='darkcave@chat.shakespeare.lit'>  
  4.       <x xmlns='http://jabber.org/protocol/muc#user'>  
  5.         <invite to='hecate@shakespeare.lit'>  
  6.           <reason>  
  7.             進來我們聊妹子  
  8.           </reason>  
  9.         </invite>  
  10.       </x>  
  11.     </message>  


2,被邀請

被邀請呢,我們可以開個監聽吧,要不要進房間先不判斷了,我這裡如果有邀請就直接進房間。有需要的朋友可以自己琢磨:

  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.                 });  

相關文章