【发布时间】:2014-06-17 21:10:50
【问题描述】:
我正在使用 XMPP 框架研究聊天概念。我成功地与服务器建立连接。现在我的下一步是进入给定的房间。
NSXMLElement *presence = [NSXMLElement elementWithName:@"presence"];
NSString *room = [@"myroom" stringByAppendingString:@"@app.xmpp.syn.in"];
[presence addAttributeWithName:@"to" stringValue:room];
NSXMLElement *x = [NSXMLElement elementWithName:@"x" xmlns:@"http://jabber.org/protocol/muc"];
NSXMLElement *history = [NSXMLElement elementWithName:@"history"];
[history addAttributeWithName:@"maxstanzas" stringValue:@"50"];
[x addChild:history];
[presence addChild:x];
XMPPIQ *iq = [XMPPIQ iq];
[iq addChild:presence];
[xmppStream sendElement:presence];
我已尝试使用上述代码,但它不起作用。它不会转到以下方法。
- (void)sendElement:(NSXMLElement *)element
{
if (element == nil) return;
dispatch_block_t block = ^{ @autoreleasepool {
if (state == STATE_XMPP_CONNECTED)
{
[self sendElement:element withTag:TAG_XMPP_WRITE_STREAM];
}
else
{
NSError *error = [NSError errorWithDomain:XMPPStreamErrorDomain
code:XMPPStreamInvalidState userInfo:nil];
[self failToSendElement:element error:error];
}
}};
if (dispatch_get_specific(xmppQueueTag))
block();
else
dispatch_async(xmppQueue, block);
}
我是第一次实现这个。进入 MUC 房间可能是我错了。请更正或建议我解决此问题。
【问题讨论】:
-
@iPatel 我必须进入房间它是服务器端的静态聊天室
-
好的..我只是把我从谷歌找到的链接放在上面,否则我对XMPP框架没有任何经验..:)快乐编码:)
-
@Sudha 这可能会对您有所帮助。 stackoverflow.com/questions/19268629/…
标签: ios objective-c xmpp xmppframework