如何在 NodeJS 包中构造 XMPP 的订阅消息?
Posted
技术标签:
【中文标题】如何在 NodeJS 包中构造 XMPP 的订阅消息?【英文标题】:How to construct a subscription message for XMPP in NodeJS package? 【发布时间】:2015-02-06 04:00:55 【问题描述】:我正在使用node-xmpp-client 包连接到 XMPP 服务。当服务从某个外部源接收消息时,它会发布消息。我的目标:
-
连接到服务
获得身份验证
订阅一些我感兴趣的节点。(节点名称已知)
从节点接收节以了解新消息已进入并处理它。
我在这里引用sample code。
我已设法使用以下代码连接到该服务。这会自动向服务器验证我的身份吗?我没有收到任何“身份验证”事件。如果没有,我如何明确请求身份验证?
var client = new xmpp.Client(
jid: 'someuser@somedomain.com',
password: 'somepassword',
host:'somehost',
port:5222
)
接下来,如何订阅发布者节点?我应该做一个 client.send(new xmpp.Message(..)) 吗?如果是,应该如何构造 xmpp.Message ?我可以在 XMPP 的网站上看到 XMPP 订阅 iq,但很难将其映射回 node-xmpp 的 api。
<iq type='set'
from='francisco@denmark.lit/barracks'
to='pubsub.shakespeare.lit'
id='sub1'>
<pubsub xmlns='http://jabber.org/protocol/pubsub'>
<subscribe
node='princely_musings'
jid='francisco@denmark.lit'/>
</pubsub>
</iq>
【问题讨论】:
【参考方案1】:可能最容易了解我是如何为 xmpp-ftw-pubsub https://github.com/xmpp-ftw/xmpp-ftw-pubsub/blob/master/lib/pubsub.js#L111-L137 做到这一点的
【讨论】:
此外,您指向的示例是 node-xmpp-server + node-xmpp-client 示例。您只需要客户端位和适当的 xmpp 服务器(例如 Prosody)。以上是关于如何在 NodeJS 包中构造 XMPP 的订阅消息?的主要内容,如果未能解决你的问题,请参考以下文章
如何创建nodejs xmpp服务器和android xmpp客户端
如何在名册中添加联系人而不在 xmpp 聊天中发送和接受订阅请求