(轉載)XMPPFrameWork IOS 開發(六)聊天室

原始地址:XMPPFrameWork iOS 開發(六)聊天室

聊天室
[cpp] view plain copy print?
//初始化聊天室  
XMPPJID *roomJID = [XMPPJID jidWithString:ROOM_JID];    
    
xmppRoom = [[XMPPRoom alloc] initWithRoomStorage:self jid:roomJID];    
    
[xmppRoom activate:xmppStream];    
[xmppRoom addDelegate:self delegateQueue:dispatch_get_main_queue()];  

[cpp] view plain copy print?
//創建聊天室成功  
- (void)xmppRoomDidCreate:(XMPPRoom *)sender  
{  
    DDLogInfo(@"%@: %@", THIS_FILE, THIS_METHOD);  
}  



[cpp] view plain copy print?
//加入聊天室,使用昵稱  
[xmppRoom joinRoomUsingNickname:@"quack" history:nil];   

[cpp] view plain copy print?
//獲取聊天室信息  
- (void)xmppRoomDidJoin:(XMPPRoom *)sender  
{  
    [xmppRoom fetchConfigurationForm];  
    [xmppRoom fetchBanList];  
    [xmppRoom fetchMembersList];  
    [xmppRoom fetchModeratorsList];  
}  

如果房間存在,會調用委托
[cpp] view plain copy print?
// 收到禁止名單列表    
- (void)xmppRoom:(XMPPRoom *)sender didFetchBanList:(NSArray *)items;    
// 收到好友名單列表    
- (void)xmppRoom:(XMPPRoom *)sender didFetchMembersList:(NSArray *)items;    
// 收到主持人名單列表    
- (void)xmppRoom:(XMPPRoom *)sender didFetchModeratorsList:(NSArray *)items;   

房間不存在,調用委托
[cpp] view plain copy print?
- (void)xmppRoom:(XMPPRoom *)sender didNotFetchBanList:(XMPPIQ *)iqError;    
- (void)xmppRoom:(XMPPRoom *)sender didNotFetchMembersList:(XMPPIQ *)iqError;    
- (void)xmppRoom:(XMPPRoom *)sender didNotFetchModeratorsList:(XMPPIQ *)iqError;  

離開房間
[cpp] view plain copy print?
[xmppRoom deactivate:xmppStream];    

[cpp] view plain copy print?
//離開聊天室  
- (void)xmppRoomDidLeave:(XMPPRoom *)sender  
{  
    DDLogVerbose(@"%@: %@", THIS_FILE, THIS_METHOD);  
}  

其他代理
[cpp] view plain copy print?
//新人加入群聊  
- (void)xmppRoom:(XMPPRoom *)sender occupantDidJoin:(XMPPJID *)occupantJID  
{  
    DDLogVerbose(@"%@: %@", THIS_FILE, THIS_METHOD);  
}  
//有人退出群聊  
- (void)xmppRoom:(XMPPRoom *)sender occupantDidLeave:(XMPPJID *)occupantJID  
{  
    DDLogVerbose(@"%@: %@", THIS_FILE, THIS_METHOD);  
}  
//有人在群里發言  
- (void)xmppRoom:(XMPPRoom *)sender didReceiveMessage:(XMPPMessage *)message fromOccupant:(XMPPJID *)occupantJID  
{  
    DDLogVerbose(@"%@: %@", THIS_FILE, THIS_METHOD);  
}  
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容