XMPP 流发送,不接收。为啥 XMPP 流可能会断开连接?
Posted
技术标签:
【中文标题】XMPP 流发送,不接收。为啥 XMPP 流可能会断开连接?【英文标题】:XMPP stream sending, not receiving. Why might an XMPP stream disconnect?XMPP 流发送,不接收。为什么 XMPP 流可能会断开连接? 【发布时间】:2014-02-06 23:47:29 【问题描述】:只是让您知道我继承了这个项目,以便您知道我不知道这一切是如何实现的。
项目: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
【问题讨论】:
【参考方案1】:事实证明,当 XMPP 消息创建不正确但发送正确时,就会发生这种情况。这是“由于消息语法错误而断开连接”。
【讨论】:
以上是关于XMPP 流发送,不接收。为啥 XMPP 流可能会断开连接?的主要内容,如果未能解决你的问题,请参考以下文章