gpt4 book ai didi

node.js - 为什么要选择独立的 socket.io 服务器、Express 和 Node http?

转载 作者:行者123 更新时间:2023-12-05 08:07:12 25 4
gpt4 key购买 nike

我正在 websockets 和 socket.io 中迈出第一步,并正在学习一些在线教程。

This tutorial正在使用似乎是 socket.io 的独立服务器。我的问题是使用独立服务器而不是使用 Express(或 Node http 服务器)的动机是什么。

我尝试在线搜索,但找不到使用独立服务器的动机。

最佳答案

我跨过了同样的问题,我看到的是添加 Express 只是为了在使用相同服务器和端口的相同应用程序中拥有更多功能提供便利。

如果我们不需要额外的功能,server.io standalone 就可以了。事实上,这是更好的选择,因为我们得到了更精简和更简单的代码。

添加 Express,同一端口中的同一服务器能够提供 html 页面、路由以及 Express API 可以提供的所有内容。我们可以这样做:

const app = express();
const httpServer = createServer(app);
const io = new Server(httpServer);

// Express working..
app.get("/:file", (req, res) => {
const file = req.params.file;
console.log("io: Got hit at", file, "ts:", Date.now());
res.sendFile(__dirname + "/html/" + file);
});

// socket.io working
io.on("connection", (socket) => {
socket.on("message", (data) => {
// do something
}
}

httpServer.listen(3000, () => {
console.log("socket.io and Express listening together on *:3000");
});

就我在这两个包的文档中所能挖掘的而言,Express 不会为 socket.io 处理套接字请求和响应、安全性提高或其他任何事情增加任何额外的好处。

总而言之,只有使用 Express 才能拥有相同的服务器和端口来处理 socket.io 的便利性以及 Express http 页面服务、路由等。

关于node.js - 为什么要选择独立的 socket.io 服务器、Express 和 Node http?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56333891/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com