2016-12-02 3 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

모든 웹 소켓 연결이 HTTP 연결로 시작

는 코드입니다.

그래서 귀하의 경우 소켓 서버를 기존 HTTP 서버 (귀하의 특급 응용 프로그램과 동일)에 연결하고 있습니다. 이 경우

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

, 소켓 서버는 별도의 서버로 실행됩니다

하지만 독립적 인 소켓 서버를 가질 수있다, 그와 같이 갈 것입니다.

당신이 달성하고자하는 것이 웹 사이트 내에서 웹 소켓 연결 인 경우 채팅 또는 다른 방법으로 표현하기 위해 첨부하는 것이 좋습니다. 그러면 모든 req/res 데이터에 액세스 할 수 있습니다.

+0

Perfect !!!! 그래서 socket.io가 서버에 연결된 방법을 이해합니다! 나는 socket.io ...을 공부하고 있습니다. 정말 고마워요! 매우 분명하다 :) – DevWeb