2016-05-12 3 views
0

私は自分のサイトでチャットを実装するためにstrophe.jsとejabberdを使用しています。しかし、私は正常にメッセージを送信したり、mamを使ってメッセージを取得することができませんでした。ログはSENT:とRECV:文字列を出力しています。私がメッセージを送信するために使用していたコードはstrophe.jsとejabberdを使用してメッセージを送信できません

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

あり、得られた送信された文字列は、私が無応答のためのgajimクライアントを試してみました

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>

です。私のような...

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

の体 'タグを削除していた場合でも、チャットが正常に受信されます。 'body'タグはデフォルトですべてのリクエストとともに追加されます。何が問題なのか。解決策を提示してください。

答えて

0

本文は、BOSH上でXMPPを実装するライブラリによってのみ追加する必要があります。それらは、BOSH制御構造とシグナリングの一部です。私はあなたのStropheクライアントがBOSHを使用すると想定しているので、BOSHラッパーが必要です。また、Gajimを使って標準のXMPPを使って接続していると思われますので、標準のXMPPをBOSHラッパーなしで使用する必要があります。それ以外の場合は、XMPPパケットとして認識されません(bodyタグは有効なXMPPパケットではありません)。

すべて正常と思われます。

関連する問題