无法使用strophe.js和ejabberd发送消息

时间:2016-05-12 15:09:44

标签: ejabberd strophe.js

我正在使用strophe.js和ejabberd在我的网站上实现聊天。但我无法使用mam成功发送消息或检索消息。日志正在打印SENT:和RECV:字符串。我用来发送消息的代码是

var m = $msg({to: 'admin@ks111', from: 'admin@ks111', type: 'chat'}).c("body").t('body'); connection.send(m);

,获得的SENT字符串是

SENT: <body rid='3431080199' xmlns='http://jabber.org/protocol/httpbind'><enable xmlns='urn:xmpp:sm:3' resume='false'/><message to='user1@server' from='user2@server' type='chat' xmlns='jabber:client'><body>body</body></message></body>

我尝试了gajim客户端没有回复。但如果我要移除身体&#39;像...这样的标签。

<message to='user1@server' from='user2@server' type='chat' xmlns='jabber:client'><body>body</body></message>

正确收到聊天。 &#39;身体&#39;默认情况下,tag会添加所有请求。可能是什么问题。请提供解决方案。

1 个答案:

答案 0 :(得分:0)

只应通过BOSH实施XMPP的库添加

正文。它们是BOSH控制结构和信令的一部分。我认为您的Strophe客户端使用BOSH,因此预计会有BOSH包装器。我还假设您使用标准XMPP使用Gajim进行连接,因此您需要使用标准XMPP而不使用BOSH包装器。否则,它不被理解为XMPP数据包(正文标记不是有效的XMPP数据包)。

一切看起来都很正常和预期。