在ejabberd服务器上启用PEP

时间:2017-04-23 04:22:37

标签: xmpp ejabberd node-xmpp

我正在使用Electron Framework和node-xmpp模块创建聊天应用,以进行XMPP通信。

除了制作个人事件协议之外,我已经成功完成了所有工作。特别是向名册发送新的昵称。

当我发送PEP节

<iq from='test@localhost' type='set' id='pub1'>
  <pubsub xmlns='http://jabber.org/protocol/pubsub'>
    <publish node='http://jabber.org/protocol/nick'>
      <item>
        <nick xmlns='http://jabber.org/protocol/nick'>I am a test user</nick>
      </item>
    </publish>
  </pubsub>
</iq>

我得到了回复IQ节:

<iq from="test@localhost" type="result" to="test@localhost/testapp" id="pub1">
  <pubsub xmlns="http://jabber.org/protocol/pubsub">
    <publish node="http://jabber.org/protocol/nick">
      <item id="5D4E0BB8EB3C6"/>
    </publish>
  </pubsub>
</iq>

现在,根据XEP-172 example 6,我应该收到一条消息,其昵称也会发送给我的所有联系人。它应该是这样的:

<message from='test@localhost' to='otheruser@localhost' type='headline' id='foo'>
  <event xmlns='http://jabber.org/protocol/pubsub#event'>
    <items node='http://jabber.org/protocol/nick'>
      <item>
        <nick xmlns='http://jabber.org/protocol/nick'>I am a test user</nick>
      </item>
    </items>
  </event>
  <addresses xmlns='http://jabber.org/protocol/address'>
    <address type='replyto' jid='test@localhost/chatapp'/>
  </addresses>
</message>

事情是我没有收到用户名单中其他联系人的任何消息。甚至不是我自己。

我是否缺少在ejabberd服务器上启用PEP的步骤?我应该包括哪些额外的节或信息?

谢谢!

1 个答案:

答案 0 :(得分:0)

如果您想接收其他用户的昵称事件,请在Entity Capabilities列表中添加http://jabber.org/protocol/nick+notify字符串。

有关详细说明,请参阅Filtered notifications