3

シミュレーターからデバイスにメッセージを送信しようとしています。シミュレーターには 1 人のユーザーがいますが、デバイスには別のユーザーがいます。しかし、プレゼンスはどこまでも受け取られていません。iOS用のXMPPFrameworkを使用しています。プレゼンスを送信するために使用しているコードは次のとおりです

NSXMLElement *presence = [NSXMLElement elementWithName:@"presence"];
[presence addAttributeWithName:@"to" stringValue:[NSString stringWithFormat:@"user1@server.com"]];
[presence addAttributeWithName:@"type" stringValue:@"available"];
[[self xmppStream] sendElement:presence]; 

しかし、最後にuser1@server.comログインしている場所では、次のメソッドは呼び出されていません

- (void)xmppStream:(XMPPStream *)sender didReceivePresence:(XMPPPresence *)presence
{
    NSLog(@"---------- xmppStream:didReceivePresence: ----------");
}

問題は何ですか?

4

1 に答える 1

4

プレゼンスが送信されなかった理由は、コードが間違っていたためです。次のコードを使用してプレゼンスを送信しました

XMPPPresence *presence = [XMPPPresence presence];
    [[self xmppStream] sendElement:presence]; 

その後、openfireサーバーでオンラインのユーザーが表示され、メッセージは他のユーザーに正しく送信されていました。

于 2011-11-30T12:55:32.863 に答える