当我需要socket.io包时,为什么我必须传递整个http包?
也许是因为socket.io必须连接到我的http服务器?
这是代码:
var port = process.env.PORT || 8080;
var express = require("express");
var app = new express();
var http = require("http").Server(app);
var io = require("socket.io")(http);
app.use(express.static(__dirname + "/public"));
// listen for events
io.on("connection", function () { // first arguments is the name of the event
console.log("User connected via socket.io");
})
http.listen(port, function () {
console.log("Server started");发布于 2016-12-02 07:12:36
每个WebSocket连接都以一个http连接开始。
因此,在您的示例中,您将套接字服务器附加到现有的http服务器(与您的快递应用程序相同)。
但是您可以有一个独立的套接字服务器,可以这样:
var io = require('socket.io')(5000);在这种情况下,套接字服务器将作为一个单独的服务器运行。
如果您想要实现的是在您的网站内的websocket连接,为了聊天或其他,最好附加它来表达,这样您就可以访问所有的req/res数据。
https://stackoverflow.com/questions/40926594
复制相似问题