3

iPhone で XMPPFramwwork を使用してチャット アプリケーションを開発しています。

以下のコードを試してみましたが、XMPPRoomDelegate のデリゲート メソッドが呼び出されません。チャット ルームの作成を開始するにはどうすればよいですか。

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

1 に答える 1

1

2 つの問題:

  1. XMPPFramework はほとんどが非同期です。つまり-fetchConfigurationForm、認証後に-xmppStreamDidAuthenticate:メソッドで呼び出す必要があります。これら 2 つの呼び出しを
    順番に行う必要がある場合は、 を呼び出します。-configureRoomUsingOptions-xmppRoom:didFetchConfigurationForm:

  2. -connect:ストリームで呼び出さない限り、何も起こりません。-xmppStreamDidConnect:その方法でサーバーとの認証を実装して開始するようにしてください。

于 2013-03-14T14:49:45.587 に答える