【问题标题】:Socket.io double connection with only one clientSocket.io双连接只有一个客户端
【发布时间】:2021-01-05 20:20:28
【问题描述】:

我刚刚开始编写这个服务器应用程序(express 和 socket.io)。 我看到双重日志,所以在 localhost:8080 启动选项卡时我与服务器有双重连接。 我究竟做错了什么?这是 Socket.io 的错误吗?

const express = require("express");
const path = require("path");
const socket = require("socket.io");
const port = process.env.PORT || 8080;
const app = express();
const server = app.listen(port);

app.use(express.static(__dirname + "/dist"));

app.get("/", (req, res) => {
  res.sendFile(path.resolve(__dirname + "/dist", "index.html"));
});

// Socket setup
const io = socket(server);

io.on("connect", function (socket) {
  console.log("Made socket connection");
});

【问题讨论】:

  • 看起来不错。客户端代码是什么样的?
  • 仅供参考,express.static() 已经实现了您的 app.get() 正在执行的操作,因此该路由有点多余。

标签: node.js express sockets socket.io


【解决方案1】:

问题是更多的 js 客户端文件正在调用 socket()。 正确的方法是将 , 中的 socket.io 库导入到你的 html 文件中,这样所有 js 客户端文件都可以使用它,只实现一个连接。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-27
    • 1970-01-01
    • 2021-06-28
    • 1970-01-01
    • 2017-08-07
    • 2019-01-18
    相关资源
    最近更新 更多