xmpp - 通过 Strope 附加(而不是连接)时,是否应该将状态广播到 XMPP 服务器?

标签 xmpp strophe

XMPP 规范规定客户端应在连接到 XMPP 服务器时广播存在状态。 Strope 有两种方法“连接”到 XMPP 服务器:连接和附加。 Connect 进行完全授权,attach 用于重新连接到预先存在的连接。使用attach时,客户端是否应该向服务器广播存在状态?

在我的测试中,如果我不在附加时广播存在,则客户端不会从其他用户接收消息(存在、消息或其他),并且如果客户端尝试发送任何节,他会立即被服务器断开。就好像服务器不知道用户在没有状态广播的情况下已连接。

这似乎是我回答了我自己的问题,但是,我想知道服务器中是否存在错误,或者我是否做错了什么或者这是预期的行为?

最佳答案

某处存在错误 - 附加实际上是附加 - 您正在继续原始 session 。服务器甚至不知道它发生了!

需要注意的事情 - 如果您仍然打开旧代码,并且使用同一 session 有多个内容,那么您很容易会得到像您所描述的那样的结果。

如果您仍然遇到困难,查看一些代码或至少附加 session 的日志可能会很有用(例如与服务器断开连接 - 它给出了什么错误等?)。

关于xmpp - 通过 Strope 附加(而不是连接)时,是否应该将状态广播到 XMPP 服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10659557/

相关文章:

java - 文件传输xmpp中主机="null"

timeout - GCDAsyncSocket ReadTimeoutError 问题

javascript - strophe.js PEP 处理程序未正确附加

javascript - Strophe、backbonejs 和 jquery-mobile

javascript - Strophe.js 文件传输的完整示例

ruby - 寻找用 Ruby 编写的 XMPP 服务器库

java - 使用java向WhatsApp发送消息

ios - 在 iOS 上通过 websocket 连接到 XMPP?

javascript - Openfire:在 openfire 服务器中使用 SASL Anonymous 创建用户