socket.io - require(socket.io)(http)

时间:2016-12-02 07:04:25

标签: node.js socket.io

当我需要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");

1 个答案:

答案 0 :(得分:2)

每个WebSocket连接都以http连接开始。

因此,在您的情况下,您将套接字服务器连接到现有的http服务器(与您的快速应用程序相同)。

但你可以有一个独立的套接字服务器,就像:

var io = require('socket.io')(5000);

在这种情况下,套接字服务器将作为单独的服务器运行。

如果您尝试实现的是网站内的websocket连接,聊天或其他方式,最好将其附加到快递中,这样您就可以访问所有req / res数据