2016-12-02 5 views
0

Когда мне требуется пакет socket.io, почему я должен передать весь пакет http?socket.io - require (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"); 

ответ

2

Каждое соединение WebSocket начинается с подключения к HTTP.

Итак, в вашем случае вы подключаете свой сервер сокетов к существующему серверу http (как и к вашему экспресс-приложению).

Но вы могли бы иметь независимый сервер сокетов, которые идут бы как:

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

В этом случае сервер сокет будет работать как отдельный сервер.

Если то, что вы пытаетесь достичь, это соединение с веб-сайтами на вашем веб-сайте, чат или другое, лучше прикрепить его для выражения, чтобы у вас был доступ ко всем данным req/res.

+0

Perfect !!!! поэтому я понимаю, как socket.io подключен на сервере! Я изучаю socket.io ... большое вам спасибо! Очень ясно :) – DevWeb

Смежные вопросы