我正在使用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会添加所有请求。可能是什么问题。请提供解决方案。
答案 0 :(得分:0)
正文。它们是BOSH控制结构和信令的一部分。我认为您的Strophe客户端使用BOSH,因此预计会有BOSH包装器。我还假设您使用标准XMPP使用Gajim进行连接,因此您需要使用标准XMPP而不使用BOSH包装器。否则,它不被理解为XMPP数据包(正文标记不是有效的XMPP数据包)。
一切看起来都很正常和预期。