【发布时间】:2017-03-23 01:33:34
【问题描述】:
我们正在 IOS 上创建一个聊天应用程序,在客户端使用 XMPPFramework (https://github.com/robbiehanson/XMPPFramework),在服务器端使用 Ejabberd。
在群聊中,我们正在创建一个群组,然后加入该群组并邀请其他用户加入我们的群组。并且每次有新的受邀用户加入群组时,我们都会通知所有参与者该新用户加入了群组。
但是,当我们重新启动应用程序(杀死并重新启动)时,我们会存储该组的用户名并再次重新加入它(您可以找到下面的示例),但在这种情况下,ejabberd 会将新用户加入的所有客户端发送到组但我已经在那个组中,唯一的区别是我重新启动了应用程序。 我如何区分这两件事?
NSString *nickName = [[NSUserDefaults standardUserDefaults]objectForKey:userNickName];
XMPPRoomMemoryStorage *roomStorage = [[XMPPRoomMemoryStorage alloc] init];
XMPPJID *roomJID = [XMPPJID jidWithString:uniqId];
XMPPRoom *xmppRoom = [[XMPPRoom alloc]initWithRoomStorage:roomStorage
jid:roomJID
dispatchQueue:dispatch_get_main_queue()];
[xmppRoom activate:xmppStream];
[xmppRoom addDelegate:self delegateQueue:dispatch_get_main_queue()];
[xmppRoom joinRoomUsingNickname:nickName history:nil];
【问题讨论】:
标签: objective-c xmpp ejabberd xmppframework