Stanza.io отправляет сообщение с атрибутами клиента в ReactJS
Я хочу отправить сообщение с пользовательскими атрибутами в ReactJS / Stanza.io . Я не могу заставить его работать. Есть хороший рабочий пример?
1 ответ
Решение
Предположим, мне нужно отправить сообщение с пользовательским атрибутом с именем custom:
<message to="tom@example" id="273z4-567" type="chat" from="john@example">
<body>hi</body>
<custom xmlns="xmpp:customAttr" layout="testLayout"> // custom attribute
<value>1234</value>
</custom>
</message>
Вы можете сделать это так:
const XMPP = require('stanza.io');
let client = XMPP.createClient({}); // obj with config
client.use(this.setCustomMessageAttributes());
setCustomMessageAttributes() {
const NS = 'xmpp:customAttr';
const customAttribute = stanzas.define({
name: 'custom',
element: 'custom',
namespace: NS,
fields: {
value: stanzas.utils.textSub(NS, 'value'),
layout: stanzas.utils.attribute('layout')
}
});
stanzas.withMessage((Message) => {
stanzas.extend(Message, customAttribute);
});
}
Вы можете отправить сообщение как
client.sendMessage({
to: "jid",
body: "hi",
custom: {
value: "1234",
layout: "testLayout"
}
});
Вы также можете обратиться к https://github.com/legastero/stanza.io/blob/master/docs/Create_Plugin.md
Если вы все еще сталкиваетесь с проблемами, вставьте свой код сюда.