//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) 套接字时,会出现一个函数问题
require("socket.io")
确实不返回函数 - 您可能正在寻找其下的 Server
类,应该使用 new
: 实例化
const socket = new require("socket.io").Server(server);