iOS XMPPFrameworkはプレゼンスを送信していません
-
21-12-2019 - |
質問
マイXMPP Streamは正常に接続し、コールバックでユーザーの存在を送信しようとします。ただし、このエラーが発生し続けます。エラードメイン= XMPPStreamerRordomainコード= 1 "操作は完了できませんでした。(XMPPStreamRorordomainエラー1)"
私の接続方法:
- (void)connect {
NSString *username = @"masa060295@jabber.web.id";
self.password = @"test123";
[self.xmppStream setMyJID:[XMPPJID jidWithString:username]];
NSError *error = nil;
if (![self.xmppStream connectWithTimeout:XMPPStreamTimeoutNone error:&error])
{
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error"
message:[NSString stringWithFormat:@"Can't connect to server %@", [error localizedDescription]]
delegate:nil
cancelButtonTitle:@"Ok"
otherButtonTitles:nil];
[alertView show];
}
}
.
私のコールバック:
- (void)xmppStreamDidConnect:(XMPPStream *)sender {
NSError *error = nil;
NSLog(@"%hhd", [self.xmppStream isConnected]);
if (![self.xmppStream authenticateWithPassword:self.password error:&error]) {
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error"
message:[NSString stringWithFormat:@"Can't authenticate %@", [error localizedDescription]]
delegate:nil
cancelButtonTitle:@"Ok"
otherButtonTitles:nil];
[alertView show];
}
XMPPPresence *presence = [XMPPPresence presence];
NSXMLElement *priority = [NSXMLElement elementWithName:@"priority" numberValue:[NSNumber numberWithInt:127]];
[presence addChild:priority];
[self.xmppStream sendElement:presence];
}
.
任意のアイデア?
解決
認証終了後にプレゼンスを送信する必要があります。このコールバックでそれをしなさい:
- (void)xmppStreamDidAuthenticate:(XMPPStream *)sender
{
XMPPPresence *presence = [XMPPPresence presence]; // type="available" is implicit
[sender sendElement:presence];
}
. 所属していません StackOverflow