私たちは、クライアント側(https://github.com/robbiehanson/XMPPFramework)のXMPPFrameworkとサーバー側のEjabberdを使用してIOSでチャットアプリケーションを作成しています。IOS XMPPフレームワークと参加ルーム
グループチャットでグループを作成した後、そのグループに参加し、他のユーザーをグループに招待します。新しい招待されたユーザーがグループに参加するたびに、新しいユーザーがグループに参加したことをすべての参加者に通知します。
しかし、アプリケーションを再起動すると(killとrelaunch)、そのグループのユーザ名が保存され、再度参加する(下の例があります)が、その場合ejabberdは新しいユーザが参加したすべてのクライアントグループに参加していましたが、すでにそのグループに入っていましたが、違いはアプリケーションを再起動したことだけです。 どうすればこれらの2つのものを区別できますか?
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];