2015-01-04 130 views
2

我發現至少有兩種方法可以做到這一點。第一種方式創建一個HTTP服務器,雖然第二種方式不會。 我無法找到關於此的任何具體教程。如何初始化socket.io的實例?

案例我

var app = require('express')(); 
var http = require('http').Server(app); 
var io = require('socket.io')(http); 
http.listen(3000); 

案例二

var app = require('express')(); 
var port = process.env.PORT || 3000; 
var io = require('socket.io').listen(app.listen(port)); 

如何這兩種方法有什麼不同?爲什麼第二種方法不需要HTTP服務器?

回答

3

app.listen()爲您創建http服務器(表示可以使用的快捷方式)。

下面的代碼爲app.listen()

app.listen = function(){ 
    var server = http.createServer(this); 
    return server.listen.apply(server, arguments); 
}; 

該Express代碼here