Socket.io每次刷新都会花费额外的时间(node.js)

时间:2019-04-11 05:59:02

标签: node.js socket.io

也许我的逻辑是完全错误的,但是据我所知它应该只发出一次。基本上,负载中发生的事情将只发出一次。刷新将使其发射两次,然后发射三次,然后发射4次。依此类推。

发现:如果我注销并重新登录,它会不断增加。

编辑:好的,所以我不是会话用户,而是通过发出一个随机数,只是为了确保它发出了不止一次,而且每个数字都不同,所以它确实触发了不止一次。 / p>

socket.io主文件

const loadup = require("../funcs/loadup");
module.exports = io => {
  io.sockets.on("connect", socket => {
    loadup(socket);
  });
};

加载文件:

module.exports = socket => {
  let session = socket.handshake.session;
  socket.emit("load up", session.user);
};

路线:

// Game route
app.get("/game", (req, res) => {
  if (req.user) {
    let gameMainSocket = require("./sock/game-main-socket")(io);
    res.render("game", req.session.user);
  } else {
    res.redirect("/");
  }
});

发射事件客户端:

socket.on("load up", data => {
  console.log("Hello");
  console.log(data);
});

1 个答案:

答案 0 :(得分:0)

我删除了 let gameMainSocket = require("./sock/game-main-socket")(io); 在路线之外,可以解决此问题。