2016-05-12 2 views
0

Ich benutze strophe.js und ejabberd für die Umsetzung eines Chats in meiner Website. Aber ich konnte nicht erfolgreich eine Nachricht senden oder Nachrichten mit Mam abrufen. Das Protokoll druckt die SENT: - und RECV: -Strings. Der Code, den ich eine Nachricht senden bin mit istNicht in der Lage zu senden Nachricht mit strophe.js und ejabberd

var m = $msg({to: '[email protected]', from: '[email protected]', type: 'chat'}).c("body").t('body'); connection.send(m);

und die erhaltene SENT String

SENT: <body rid='3431080199' xmlns='http://jabber.org/protocol/httpbind'><enable xmlns='urn:xmpp:sm:3' resume='false'/><message to='[email protected]' from='[email protected]' type='chat' xmlns='jabber:client'><body>body</body></message></body>

ich mit dem gajim Client für keine Antwort versucht. Aber wenn ich den 'Körper' Tag am Entfernen wie ...

<message to='[email protected]' from='[email protected]' type='chat' xmlns='jabber:client'><body>body</body></message>

der Chat ist richtig empfangen. Das Tag "body" wird standardmäßig mit allen Anfragen hinzugefügt. Was könnte das Problem sein? Bitte geben Sie eine Lösung an.

Antwort

0

Body sollte nur von einer Bibliothek hinzugefügt werden, die XMPP über BOSH implementiert. Sie sind Teil der BOSH Kontrollstruktur und Signalisierung. Ich nehme an, dass Ihr Strophe-Client BOSH verwendet, sodass ein BOSH-Wrapper erwartet wird. Ich nehme auch an, dass Sie mit Standard-XMPP mit Gajim verbinden, so dass Sie Standard-XMPP ohne BOSH-Wrapper verwenden müssen. Ansonsten wird es nicht als XMPP-Paket verstanden (ein Body-Tag ist kein gültiges XMPP-Paket).

Alles scheint normal und erwartet.

Verwandte Themen