通过 Strophe 附加(未连接)时是不是应该向 XMPP 服务器广播状态?

Posted

技术标签:

【中文标题】通过 Strophe 附加(未连接)时是不是应该向 XMPP 服务器广播状态?【英文标题】:Should Presence Be Broadcast to an XMPP Server When Attaching (not connecting) via Strophe?通过 Strophe 附加(未连接)时是否应该向 XMPP 服务器广播状态? 【发布时间】:2012-05-18 20:50:02 【问题描述】:

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

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

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

【问题讨论】:

【参考方案1】:

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

需要注意的事项 - 如果您的旧代码仍处于打开状态,并且您在同一会话中有多个内容,那么您很容易得到您所描述的内容。

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

【讨论】:

以上是关于通过 Strophe 附加(未连接)时是不是应该向 XMPP 服务器广播状态?的主要内容,如果未能解决你的问题,请参考以下文章

xmpp openfire 未验证我稍后用于 strophe 附加的 php 脚本

Django + Strophe + ejabberd - 附加和群聊的麻烦

Strophe attach()函数不起作用

Strophe & Ejabberd:发送消息后重新认证的问题

旁遮普邦并不始终承认它正在从 strophe 获取消息

strophe 无法通过 websocket 连接 openfire