对于 XMPP 即时消息,我使用 libstrophe(C 库)在登录到我的站点时自动为我的用户创建连接。这发生在服务器端。然后在随后的页面请求中,我想再次使用该连接。我在网页的客户端使用 JavaScript Strophe 库。strophe 有一个 attach() 函数,它使用 jid、sid 和摆脱连接。jid 是 jabber ID,sid 是会话 ID,rid 是请求 ID。请注意,Strophe 还提供了一个 connect() 函数,我可以使用该函数获取 jid 和密码,但这比较慢,并且迫使我将用户密码嵌入到页面上输出的 javascript 中。
我希望服务器端登录代码创建连接并将 jid、sid 和 rid 存储在 cookie 中。然后在后续的页面请求中,只需读取 cookie 并将 jid、sid 和 rid 传递给 Strophe attach() 函数即可。
听起来很容易对吧?但是 C 中的 libstrophe 在建立连接后不提供 sid 或 rid 吗?我发现了如何通过发布某个“会话授权”节来获取 sid,但不知道如何摆脱?
我意识到这有点晦涩难懂。有什么帮助吗?