XMPP远程服务器连接问题iOS

时间:2016-12-20 07:06:26

标签: ios xmpp openfire remote-server xmppframework

我正在开发一个聊天应用程序,我在其中设置了我的xmppHostName-'myserver'和服务器端口-5222。首先,我通过我的应用程序在xmpp上创建了一个用户,它在xmpp上注册但是出现了身份验证错误(尽管我的用户ID和密码都相同)。然后我通过使用以下方法解决了这个身份验证问题 -

 NSError *authenticateError = nil;
XMPPPlainAuthentication *plainAuth = [[XMPPPlainAuthentication alloc] initWithStream:self.xmppStream password:password];
if (![_xmppStream authenticate:plainAuth error:&authenticateError]) {
    NSLog(@"Authentication errorrrr: %@", authenticateError.localizedDescription);
}

并且验证错误消失了,我的用户在线,但当我尝试发送任何消息时,服务器通过其他人回复错误:

<message xmlns="jabber:client" id="ACC2AAA6-42CE-4590-95A0-C4B28BE9BF04" to="97@otherserver/4ywme5xjh0" from="62@myserver" type="error"><error code="404" type="cancel"><remote-server-not-found xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/></error></message>

其中,97是我的用户ID,62是前端用户ID。下面是我发送xmpp消息的代码:

     NSXMLElement *body = [NSXMLElement elementWithName:@"body"];
    [body setStringValue:messageBody];
    NSXMLElement *subject = [NSXMLElement elementWithName:@"subject"];
    [subject setStringValue:subjectName];

    [message addAttributeWithName:@"to" stringValue:[user stringByAppendingString:myserver]];
    [message addChild:body];
    [message addChild:subject];


    [self.xmppStream sendElement:message];

这里,'myserver'是我服务器的主机名,服务器从另一台服务器'otherserver'回复。我确信我没有在我的应用程序中的任何地方设置这个'otherserver',那么它如何通过它回复呢?

0 个答案:

没有答案