是否可以在converse.js中接收自定义节?
我尝试listen
收到消息:
converse.plugins.add('dummy', {
initialize: function() {
var _converse = this._converse;
_converse.api.listen.on('message', function(xmlMessage) {
console.log('Received message!');
});
}
});
我的自定义节看起来像这样:
<message to='...' from='...' type='groupchat'>
<custom_stanza>
<created_at>2018-02-14T16:25:00+01:00</created_at>
<store xmlns='urn:xmpp:hints'/>
</custom_stanza>
</message>
但不幸的是,这一节不会在这里得到认可。正常消息有效。
答案 0 :(得分:1)
我不确定为什么没有为您的自定义消息触发message
事件。 converse.js代码中必须有一些假设,您的自定义消息无法实现。
Converse.js使用了Strophe.js,因此您可以使用Strophe的addHandler在较低级别注册事件处理程序。
以下是您将如何做到这一点:
converse.plugins.add('dummy', {
initialize: function() {
var _converse = this._converse;
_converse.on('connected', () => {
// _converse.connection is an instance of Strophe.Connection
// which provides the `addHandler` method.
_converse.connection.addHandler((message) => {
// Your message handling code comes here...
}, null, 'message');
});
}
});
此用例的一个示例位于converse-bookmarks.js插件中。