我正在使用node-xmpp用node.js编写一个机器人。到目前为止,它非常简单,除了我在弄清楚google Talk如何处理它的用户授权时遇到了问题(当处理请求与不在您花名册上的人聊天时)。
我正在捕获所有传入的节,并将它们记录到控制台,但是没有来自请求授权的用户的数据。
关于我应该寻找什么,或者这个事件是否通过jabber协议发生的任何解释。
另外,我知道,从技术上讲,当发出订阅请求时,将随订阅请求一起发送presence节。由于某些原因,使用node-xmpp我看不到这些东西。此外,我需要找出一种方法来确定当我的机器人登录时,哪些在线状态请求是“挂起的”。我认为(自然地)他们会被列在名单上,并带有某种标志,但这是不正确的。
任何帮助找出从这里到哪里将是有用的。
发布于 2011-08-27 05:48:55
好了,我终于想出了在发出订阅请求后如何获取它们。没有太多关于它的信息,所以我会写一篇博客文章,但我觉得在这里回答可能也会很好。
我发现,如果我根据以下信息进行谷歌花名册查询:
http://code.google.com/apis/talk/jep_extensions/roster_attributes.html
示例节数:
<iq from="username@gmail.com/D2D4E5A8" type="get" id="google-roster-1"><query xmlns="jabber:iq:roster" xmlns:gr="google:roster" gr:ext="2"/></iq>服务器将首先使用挂起的服务器订阅"presence“节进行响应
例如:
<presence type="subscribe" from="pendinguser@gmail.com" to="namehere@gmail.com/D2D4E5A8" xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client"/>然后你的花名册的其余部分的“存在”小节。重要的是要注意,您的订阅"presence“节不会从服务器发送给您,除非您执行花名册查询。我不确定这是为什么,为什么它没有被记录在我无法理解的地方。无论如何,至少我现在可以得到试图访问我的机器人的人的列表。
发布于 2011-08-21 15:42:48
注意:这不是我的知识领域,只是我的兴趣。我没有实践经验,只做了一点研究。这可能是一个评论,但是在这个主题上做了一些更多的搜索,我已经提出了一些可能会有所帮助的东西。
这是一个谷歌聊天室主页 http://partychapp.appspot.com/你可以获得源代码 http://code.google.com/p/partychapp/
这些链接来自http://xmpp.org/2010/02/xmpp-roundup-13-services/,它有相当多的其他资源可能会有所帮助。
http://code.google.com/p/node-xmpp-bosh/有一些关于这方面的代码,我没有做过,但是这个主题很有趣。
我希望,如果你在写了一篇博客文章或一个项目并分享之后,你确实找到了答案。我会感兴趣的。
https://stackoverflow.com/questions/7127528
复制相似问题