我正在iPhone中使用XMPPFramwwork开发聊天应用程序。我成功完成了一对一聊天,现在我想在我的应用程序中开发多用户聊天。
我尝试了以下代码但是没有调用XMPPRoomDelegate的任何委托方法。我可以开始创建聊天室。何时以及如何调用roomdelegate方法....任何回复感谢inadvance。
XMPPStream *xmppStream = [[XMPPStream alloc] init];
XMPPRoomCoreDataStorage *xmppRoomStorage = [XMPPRoomCoreDataStorage sharedInstance];
XMPPJID *roomJID = [XMPPJID jidWithString:@"vvreddy50@gmail.com"];
xmppRoom = [[XMPPRoom alloc] initWithRoomStorage:xmppRoomStorage jid:roomJID dispatchQueue:dispatch_get_main_queue()];
[xmppRoom activate:xmppStream];
[xmppRoom fetchConfigurationForm];
[xmppRoom configureRoomUsingOptions:nil];
[xmppStream addDelegate:self delegateQueue:dispatch_get_main_queue()];
[xmppRoom addDelegate:self delegateQueue:dispatch_get_main_queue()];
答案 0 :(得分:1)
两个问题:
XMPPFramework主要是异步的。这意味着您需要在使用-fetchConfigurationForm
方法进行身份验证后致电-xmppStreamDidAuthenticate:
如果需要按顺序进行这两个调用,请在-configureRoomUsingOptions
中调用-xmppRoom:didFetchConfigurationForm:
。
除非您在流上调用-connect:
,否则什么都不会发生。确保实现-xmppStreamDidConnect:
并在该方法中使用服务器启动身份验证。