在 converseJS 插件中阅读自定义节?
Reading custom stanzas in converseJS plugin?
是否可以在 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>
但不幸的是,这里无法识别此节。正常消息有效。
我不确定为什么没有为您的自定义消息触发 message
事件。 converse.js 代码中一定有一些您的自定义消息不满足的假设。
Converse.js 使用 Strophe.js under the hood, so you can use Strophe's 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 插件中。
是否可以在 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>
但不幸的是,这里无法识别此节。正常消息有效。
我不确定为什么没有为您的自定义消息触发 message
事件。 converse.js 代码中一定有一些您的自定义消息不满足的假设。
Converse.js 使用 Strophe.js under the hood, so you can use Strophe's 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 插件中。