首页 文章

xmppframework iphone无法将用户添加到已创建的房间(群聊)

提问于
浏览
2

我正在尝试在iphone中进行群聊,能够成功使用单个聊天 .

我已成功使用以下代码创建了新房间 .

XMPPRoomCoreDataStorage *rosterstorage = [[XMPPRoomCoreDataStorage alloc] init];
XMPPRoom *xmppRoom = [[XMPPRoom alloc] initWithRoomStorage:rosterstorage jid:[XMPPJID jidWithString:@"viratsroom@conference.praveens-mac-mini.local"] dispatchQueue:dispatch_get_main_queue()];

[xmppRoom activate:[[self appDelegate] xmppStream]];
if ([xmppRoom preJoinWithNickname:@"viratsRoom"]) {
  NSLog(@"room created");
  [xmppRoom joinRoomUsingNickname:@"viratsroom11" history:nil];
}
[xmppRoom fetchConfigurationForm];
[xmppRoom configureRoomUsingOptions:nil];
[xmppRoom addDelegate:[self appDelegate] delegateQueue:dispatch_get_main_queue()];

现在在该组中的用户下,openfire服务器上显示的用户是正确的 . 我的问题是,1)在何处以及如何处理加入群组的邀请消息? 2)我尝试使用以下代码加入上面 Build 的同一组

XMPPRoomCoreDataStorage *rosterstorage = [[XMPPRoomCoreDataStorage alloc] init];
XMPPRoom *xmppRoom = [[XMPPRoom alloc] initWithRoomStorage:rosterstorage jid:[XMPPJID jidWithString:@"viratsroom@conference.praveens-mac-mini.local"] dispatchQueue:dispatch_get_main_queue()];
[xmppRoom activate:[[self appDelegate] xmppStream]];
[xmppRoom joinRoomUsingNickname:@"viratsroom11" history:nil];
[xmppRoom fetchConfigurationForm];
[xmppRoom configureRoomUsingOptions:nil];
[xmppRoom addDelegate:[self appDelegate] delegateQueue:dispatch_get_main_queue()];

房间名称现在显示在我的离线用户列表中 . 现在openfire服务器上这个房间下的用户应该增加到两个,因为一个用户加入了这个房间,但它仍然只显示一个以前的用户成员 .

我错过了什么吗?代码中的任何错误?请帮忙!谢谢 .

1 回答

  • 3

    我得到了这个,房间没有正确配置因此所有问题在创建房间后立即调用此功能 -

    [xmppRoom fetchConfigurationForm]; 
    [xmppRoom configureRoomUsingOptions:nil];
    

    在你可以配置房间后,需要一点时间来创造空间 .

    [self performSelector:@selector(ConfigureNewRoom:) withObject:nil afterDelay:2];
    

    :)

相关问题