#xmpp #ejabberd #stanza.io
#xmpp #ejabberd #stanza.io
Вопрос:
Я пытаюсь реализовать простой групповой чат stanzajs, но в тестах неясно, от и до переменных.
test('MUC chat', () => {
const client = createClient({});
const incoming: ReceivedMessage = {
body: 'yayyyy',
from: 'room@rooms.test/member',
to: 'tester@localhost',
type: 'groupchat'
};
client.on('groupchat', msg => {
expect(msg).toStrictEqual(incoming);
});
client.emit('message', incoming);
});
https://github.com/legastero/stanza/blob/master/test/muc/messages.ts
ошибок нет, но другой пользователь и комната не видят сообщения. Как я могу отправить общедоступное сообщение в room. я не понимаю, почему to: переменная — это пользователь, а не имя комнаты
this.client.on('groupchat', msg => {
console.log("groupchat new")
console.log(msg)
});
Ответ №1:
Только учетная запись, которая присоединилась к комнате (пользователь в комнате), может отправлять сообщения в комнату.
Вы должны установить хорошо известный клиент Jabber / XMPP, например Gajim, Psi, Tkabber… У этих клиентов есть «консоль XML», которая позволяет вам видеть, какие строки они отправляют и получают.
Сравните то, что они отправляют, с тем, что отправляете вы, и вы найдете проблему.