stanzajs отправляет простое сообщение в groupchat

#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», которая позволяет вам видеть, какие строки они отправляют и получают.

Сравните то, что они отправляют, с тем, что отправляете вы, и вы найдете проблему.