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 人表示されています。私の質問は、1)グループに参加するための招待メッセージをどこでどのように処理するのですか? 2)次のコードを使用して、上記で作成した同じグループに参加しようとしました

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()];

ルーム名がオフライン ユーザー リストに表示されるようになりました。1 人のユーザーがこのルームに参加したため、openfire サーバー上のこのルームのユーザーは 2 人に増えるはずですが、以前のユーザー メンバーは 1 人しか表示されません。

何か不足していますか?コードに間違いはありますか?助けてください!ありがとう 。

4

1 に答える 1

3

私はこれを手に入れました。ルームは適切に構成されていなかったため、ルームを作成した直後にこれを呼び出すすべての問題は機能しません-

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

部屋を作成してから部屋を構成できるようになるまで少し時間がかかります。

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

:)

于 2012-07-17T11:22:20.380 に答える