只是让您知道我继承了这个项目,这样您就知道我并不完全了解这一切是如何实现的。
项目:iOS 上的 XMPP/Jabber 聊天客户端,支持 PHP 服务器
我正在两台 iPhone 实体设备上测试该应用。
看起来应用程序正在发送它应该通过 XMPP 流发送的消息,但应用程序肯定没有收到这些消息。
每次应用程序应接收消息时,它会重新协商它在应用程序运行开始时所做的 XMPP 握手。
对此进行调查,我发现要么是流断开连接,要么是类似情况。这是我实现的两条日志消息。它们包含正在运行的方法名称以及与该方法关联的 NSError 的内容
2014-02-06 18:28:50.140 AppName[9841:473b] --Socket Closed With Error--
Domain: (null)
UserInfo: (null)
2014-02-06 18:28:50.147 AppName[9841:60b] --xmppStreamDidDisconnect--
Domain: libxmlErrorDomain
UserInfo: {
NSLocalizedDescription = "Couldn't find end of Start Tag body\n";
}
假设 1:最明显的是,我查看了错误域和描述。 然而,还没有找到“找不到开始标签正文的结尾”的运气
假设 2: 我在某个论坛上读到,如果多个设备试图使用相同的凭据登录到同一台服务器,XMPP 流可能会断开连接。我担心这可能是这里发生的事情,但我如何确定这些凭证是否相同。这两个设备使用两个不同的用户名/用户 ID,我相信这对 XMPP 来说已经足够了。
他们使用相同的 IP,但这对于 XMPP 来说很自然,不是吗?
例如。使用的 JID:
user1@my.site.ip
user2@my.site.ip
最佳答案
事实证明,当 XMPP 消息创建不正确但发送正确时,就会发生这种情况。这是“由于消息语法错误而断开连接”。
关于php - XMPP 流发送,不接收。为什么 XMPP 流会断开连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21616536/