在页面上卸载strophe.js发送请求两次!为什么?

时间:2014-01-24 16:08:49

标签: javascript xmpp strophe

我是Xmpp服务器和strophe.js的新手,我将它实现到我的网站进行消息传递。当我发送消息它工作正常时有一个问题,但是如果我立即重新加载页面后发送消息然后我看到那条消息,我在重新加载之前发送的信息保存在Xmpp服务器两次,当我从服务器检索消息时显然它会返回重复的消息。真是太尴尬了。

任何人都可以告诉我任何解决方案在页面加载时停止两次请求吗?

我看到一个帖子,其中一位开发人员说他遇到了同样的问题并且联系了strophe团队他们建议他用这段代码替换strophe.js文件的2566行 if (req.sends == 0) { sendFunc(); }

我已经完成了,但我的问题仍然存在。 :(

谢谢,

biswajitGhosh

1 个答案:

答案 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;
}