使用 Pidgin 的 XMPP 聊天状态
我正在编写一个聊天支持应用程序,该应用程序使用 SASL 匿名机制连接到 XMPP 服务器。当用户在浏览器中打开我的网站时,服务器将使用 Socket.IO 和 NodeJS 启动与我的 XMPP 服务器的匿名连接。
这一切工作正常。我可以与浏览器连接并通信,这非常酷。
支持团队使用 Pidgin 连接到服务器。我希望能够在支持技术人员输入 Pidgin 时在浏览器上显示。我设置了聊天状态通知以使用 AJAX 等与浏览器配合使用,但是我在使用 Pidgin/Adium 时遇到了问题。当我从 iChat 连接时,一切似乎都很完美。当技术人员打字时,我会进入“活动”和“撰写”聊天状态。然而,出于某种原因,Pidgin 和 Adium 都没有将这些聊天状态发送到浏览器客户端。我已确保启用了正确的设置,因为聊天状态是在两个洋泾浜用户之间发送的。
我读过一些有关发送节来报告客户端支持哪些功能的内容,但 Pidgin 客户端从未尝试从浏览器请求此功能。
我在这里缺少什么?
编辑:我想我应该补充一点,匿名浏览器客户端正在启动与 Pidgin 用户的聊天,这可能是这里问题的一部分。
I am writing a chat support application that connects to an XMPP server using the SASL Anonymous mechanism. When a user opens my website in their browser, using Socket.IO and NodeJS the server will initiate the anonymous connection with my XMPP server.
This is all working fine. I can connect and communicate with the browser, and it is very cool.
The support team connects to the server using Pidgin. I'd like to be able to display to the browser when the support techs are typing in Pidgin. I set up chat state notifications to work with the browser using AJAX and such, however I am having issues with Pidgin/Adium. Everything seems to work perfectly when I connect from iChat. I get 'active' and 'composing' chat states when the tech is typing. For some reason, however, both Pidgin and Adium are not sending these chat states to the browser client. I've made sure that the proper setting is enabled, as the chat states are being sent between two Pidgin users.
I read something about sending a stanza to report which features a client supports, but the Pidgin client never attempts to request this from the browser.
What am I missing here?
EDIT: I guess I should add that the anonymous browser client is initiating the chat with the Pidgin user, which may be part of the problem here.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

您的客户是否实施了 XEP-0115,并声明支持 http://jabber.org/protocol/chatstates 功能,如 XEP-0085 的第 4 节?
一旦你实现了它,你只需要处理 libpurple 的错误。
Does your client implement XEP-0115, and claim support for the http://jabber.org/protocol/chatstates feature, as specified in section 4 of XEP-0085?
Once you implement that, you'll merely need to deal with libpurple's bugginess.