每条消息中的 XMPP/ejabberd 登录会话 represented/maintained 是如何发送的?它与 PHP 会话相比如何?

How are XMPP/ejabberd login sessions represented/maintained in each message sent? How does it compare to PHP Sessions?

我很难理解用户如何在登录后发送消息,因为没有交换会话令牌或任何其他类型的令牌。

例如,在PHP中,当您登录用户后,会为他创建一个存储在cookie 中的Session ID,然后每次他访问页面时,都会从cookie 中检索该Session ID , 识别他。

这如何与 XMPP/ejabberd 一起工作,因为在身份验证后没有交换令牌?

我发现了这个:

Session Manager: This module routes packets to local users. It searches for what user resource packet must be sent via presence table. If this resource is connected to this node, it is routed to C2S process, if it connected via another node, then the packet is sent to session manager on that node.

...但我不确定它是否与我的问题有关,即使是,我仍然不明白这与用户刚刚进行的登录有何关系。

在 XMPP 中,TCP 连接保持打开状态(通常使用 TLS 加密)。假定通过该连接发送的每条消息都来自已通过身份验证的用户。

urn:ietf:params:xml:ns:xmpp-session 命名空间提供的会话支持已弃用,大多数服务器不响应 <session/>