http.createServer (aplicativo) v. http.Server (aplicativo)
Na página da Web socket.io,Get Started: Chat application
, localizado aqui:
http://socket.io/get-started/chat/
existe este código:
var app = require('express')();
var http = require('http').Server(app);
que poderia ser reescrito um pouco mais claramente assim:
var express = require('express');
var http = require('http');
var app = express();
var server = http.Server(app);
O exemplo do socket.io usa http.Server () para criar um servidor. No entanto, os documentos expressos paraapp.listen () mostra um exemplo em que o servidor é criado usandohttp.createServer(app)
:
app.listen ()
Ligue e ouça as conexões no host e na porta fornecidos. Este método é idêntico ao http.Server # listen () do nó.
var express = require('express');
var app = express();
app.listen(3000);
O aplicativo retornado por express () é de fato uma Função JavaScript, projetada para ser transmitida aos servidores HTTP do nó como um retorno de chamada para manipular solicitações. Isso permite que você forneça facilmente as versões HTTP e HTTPS do seu aplicativo a mesma base de código, pois o aplicativo não herda delas (é simplesmente um retorno de chamada):
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);
O método app.listen () é um método conveniente para o seguinte (se você deseja usar HTTPS ou fornecer os dois, use a técnica acima):
app.listen = function(){
var server = http.createServer(this);
return server.listen.apply(server, arguments);
};
Qual é a diferença entrehttp.createServer(app)
ehttp.Server(app)
?? Os documentos http não ajudam.