Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
XMPP远程服务器连接问题iOS_Ios_Xmpp_Openfire_Remote Server_Xmppframework - Fatal编程技术网

XMPP远程服务器连接问题iOS

XMPP远程服务器连接问题iOS,ios,xmpp,openfire,remote-server,xmppframework,Ios,Xmpp,Openfire,Remote Server,Xmppframework,我正在开发一个聊天应用程序,其中我设置了xmppHostName-“myserver”和服务器端口-5222。首先,我通过我的应用程序在xmpp上创建了一个用户,并在xmpp上注册了它,但出现了一个身份验证错误(尽管我的用户id和密码都相同)。然后,我使用以下方法解决了这个身份验证问题- NSError *authenticateError = nil; XMPPPlainAuthentication *plainAuth = [[XMPPPlainAuthentication alloc]

我正在开发一个聊天应用程序,其中我设置了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);
}
身份验证错误消失,并且我的用户处于联机状态,但当我尝试发送任何消息时,服务器会通过otherserver返回一个错误:

<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>

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

我尝试获取myjid的域,但它返回了“otherserver”。如何更改xmppstream.myjid.domain的域。请帮助我。也许你安装了名为“otherserver”的Openfire,只需从Openfire的管理面板查看servername,实际上它只是文本描述。我的意思是我有服务器ip'xx.xx.x.xxx'=其他服务器。在配置中,您必须有serverHost(即ip)和serverName(即文本描述)。如果您尝试向IP发送消息,它将失败,您将需要“文本描述”,我尝试获取myjid的域,但它返回“otherserver”。如何更改xmppstream.myjid.domain的域。请帮助我。也许你安装了名为“otherserver”的Openfire,只需从Openfire的管理面板查看servername,实际上它只是文本描述。我的意思是我有服务器ip'xx.xx.x.xxx'=其他服务器。在配置中,您必须有serverHost(即ip)和serverName(即文本描述)。如果您试图向IP发送消息,它将失败,您需要“文本描述”
     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];