我是Xmpp服务器和strophe.js的新手,我将它实现到我的网站进行消息传递。当我发送消息它工作正常时有一个问题,但是如果我立即重新加载页面后发送消息然后我看到那条消息,我在重新加载之前发送的信息保存在Xmpp服务器两次,当我从服务器检索消息时显然它会返回重复的消息。真是太尴尬了。
任何人都可以告诉我任何解决方案在页面加载时停止两次请求吗?
我看到一个帖子,其中一位开发人员说他遇到了同样的问题并且联系了strophe团队他们建议他用这段代码替换strophe.js文件的2566行
if (req.sends == 0) {
sendFunc();
}
我已经完成了,但我的问题仍然存在。 :(
谢谢,
biswajitGhosh
答案 0 :(得分:0)
您需要创建多个div / windows,每个聊天一个。 Strophe意味着异步,因此您不必重新加载。重新加载击败了strophe的目的。附加/连接后,为连接添加处理程序。
connection.addHandler(onMsg, null, 'message');
在您的消息处理程序中,您可以确定该消息属于哪个对话并将其附加到相应的div。
var onMsg = function (msg) {
var elems = msg.getElementsByTagName('body');
if (elems.length > 0) {
var type = msg.getAttribute('type');
var from = msg.getAttribute('from');
if (type == "chat") {
//new chat message
}
}
return true;
}