2014-11-14 12 views
28

Na socket.io strony, Get Started: Chat application, znajduje się tutaj.http.createServer (app) v http.Server (app)

http://socket.io/get-started/chat/

tam

jest ten kod:

var app = require('express')(); 
var http = require('http').Server(app); 

które mogłyby być przepisywane trochę jaśniej tak:

var express = require('express'); 
var http = require('http'); 

var app = express(); 
var server = http.Server(app); 

socket.io examp le używa http.Server() do utworzenia serwera. Mimo, że wyrażają docs dla app.listen() pokazują przykład, w którym serwer jest tworzony przy użyciu http.createServer(app):

app.listen()
Bind i nasłuchiwać połączeń na danym hoście i portu. Ta metoda jest identyczna z http.Server # węzła # listen().

var express = require('express'); 
var app = express(); 
app.listen(3000); 

Aplikacja powrócił ekspresowym() jest w rzeczywistości Funkcja JavaScript, zaprojektowany, aby być przekazywane do serwerów HTTP węzła jako wywołania zwrotnego do obsługi żądań. Pozwala to zapewnić zarówno HTTP i HTTPS wersje aplikacja z tym samym kodzie łatwo, ponieważ aplikacja nie dziedziczy z nich (jest to po prostu callback):

var express = require('express'); 
var https = require('https'); 
var http = require('http'); 
var app = express(); 

http.createServer(app).listen(80); 
https.createServer(options, app).listen(443); 

app.listen() metoda jest metodą wygoda dla następujących (jeśli chcesz użyć protokołu HTTPS lub dostarczyć zarówno użyć techniki powyżej):

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

Jaka jest różnica między http.createServer(app) i http.Server(app) ?? Dokumenty http nie są pomocne.

Odpowiedz