XMPP远程服务器连接问题iOS
我正在开发一个聊天应用程序,其中我设置了xmppHostName-“myserver”和服务器端口-5222。首先,我通过我的应用程序在xmpp上创建了一个用户,并在xmpp上注册了它,但出现了一个身份验证错误(尽管我的用户id和密码都相同)。然后,我使用以下方法解决了这个身份验证问题-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]
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];