XMPP 规范规定客户端应在连接到 XMPP 服务器时广播存在状态。 Strope 有两种方法“连接”到 XMPP 服务器:连接和附加。 Connect 进行完全授权,attach 用于重新连接到预先存在的连接。使用attach时,客户端是否应该向服务器广播存在状态?
在我的测试中,如果我不在附加时广播存在,则客户端不会从其他用户接收消息(存在、消息或其他),并且如果客户端尝试发送任何节,他会立即被服务器断开。就好像服务器不知道用户在没有状态广播的情况下已连接。
这似乎是我回答了我自己的问题,但是,我想知道服务器中是否存在错误,或者我是否做错了什么或者这是预期的行为?
最佳答案
某处存在错误 - 附加实际上是附加 - 您正在继续原始 session 。服务器甚至不知道它发生了!
需要注意的事情 - 如果您仍然打开旧代码,并且使用同一 session 有多个内容,那么您很容易会得到像您所描述的那样的结果。
如果您仍然遇到困难,查看一些代码或至少附加 session 的日志可能会很有用(例如与服务器断开连接 - 它给出了什么错误等?)。
关于xmpp - 通过 Strope 附加(而不是连接)时,是否应该将状态广播到 XMPP 服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10659557/