Javascript 套接字被多次调用
我阅读了关于这个问题的其他问题,但没有找到解决问题的方法。例如,我看到可以移除监听器或将套接字代码移出click处理程序,但这似乎不适合我的问题 我使用的是sockets+ajax。我的代码逻辑如下:Javascript 套接字被多次调用,javascript,ajax,node.js,sockets,Javascript,Ajax,Node.js,Sockets,我阅读了关于这个问题的其他问题,但没有找到解决问题的方法。例如,我看到可以移除监听器或将套接字代码移出click处理程序,但这似乎不适合我的问题 我使用的是sockets+ajax。我的代码逻辑如下: //client side button.onclick = function () {Communicate(info);return false;}; function Communicate(info) { // ajax call } // server side -> r
//client side
button.onclick = function () {Communicate(info);return false;};
function Communicate(info) {
// ajax call
}
// server side -> receive ajax
app.post("/...",function(req,res) {
// do stuff (...)
// send global socket call
io.sockets.emit("GlobalCall",xx);
// return ajax call to the user who triggered this
res.send(...));
});
// client side again
socket.on("GlobalCall",function(x)) {
// this is called twice sometimes for some reason... It should be called only once each time the server emits ...
}
正如我对代码的评论,服务器只发出一次,但“GlobalCall”有时会发生两次。
有什么帮助吗?谢谢解决方案实际上与套接字无关。发生的事情与jquery动画有关,jquery动画为每个指定的属性执行两次。我不知道也没注意到。责怪插座是错误的。问题出在哪里?错误是什么?@robkuz尽管我只在服务器端发出一次,但在客户端发出socket.on(“GlobalCall”…)有时被称为twiceCan您可以在前端的socket.on之前添加一个console.log,并检查此代码不是在发出时而是在发出时运行了多少次registering@AsifSaeed嗯,这是在全球范围内,所以没有什么重要的。我发现了这个问题,它与套接字没有直接关系。。。