Socket.io TypeError:套接字不是函数

问题描述 投票:0回答:1
//module declaration
const express = require("express"),
  bd = require("body-parser"),
  cors = require("cors"),
  http = require("http");
const app = express();
const server = http.createServer(app);
const socket = require("socket.io")(server);

//middleware
const corsOptions = {
  credentials: true,
  origin: ["*"],
};
app.use(bd.json());
app.use(bd.urlencoded({ extended: true }));
app.use(cors(corsOptions));

//io declaration
const io = socket(
  server.listen(5050, (err) => {
    if (err) throw err;
    else console.log("successfully connected");
  })
);

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

//websocket configuration
io.on("connection", (socket) => {
  console.log("succesfully connected", socket.id);
  socket.on("btn", (data) => {
    io.socket.emit("btn", data);
    console.log(data);
  });
});

我使用了 require("socket.io)(server) 方法,但这个方法似乎出现了问题。当我运行 app.js 时,它说套接字不是一个函数。

在此输入图片描述

我尝试使用 websocket 进行客户端和服务器端之间的通信。现在我只是尝试从 Node js 中的 html 检测按键,但是当我使用 require("socket.io")(server) 套接字时,会出现一个函数问题

node.js websocket socket.io backend
1个回答
0
投票

require("socket.io")
确实不返回函数 - 您可能正在寻找其下的
Server
类,应该使用
new
:

实例化
const socket = new require("socket.io").Server(server);
© www.soinside.com 2019 - 2024. All rights reserved.