http.createServer (aplicación) v. http.Server (aplicación)
En la página web socket.io,Get Started: Chat application
, ubicado aquí:
http://socket.io/get-started/chat/
hay este código:
var app = require('express')();
var http = require('http').Server(app);
que podría reescribirse un poco más claramente así:
var express = require('express');
var http = require('http');
var app = express();
var server = http.Server(app);
El ejemplo de socket.io usa http.Server () para crear un servidor. Sin embargo, los documentos express paraapp.listen () muestra un ejemplo donde el servidor se crea usandohttp.createServer(app)
:
app.listen ()
Enlace y escuche las conexiones en el host y el puerto dados. Este método es idéntico al http.Server # listen () del nodo.
var express = require('express');
var app = express();
app.listen(3000);
La aplicación devuelta por express () es, de hecho, una función de JavaScript, diseñada para pasar a los servidores HTTP del nodo como una devolución de llamada para manejar las solicitudes. Esto le permite proporcionar fácilmente las versiones HTTP y HTTPS de su aplicación con la misma base de código, ya que la aplicación no hereda de estas (es simplemente una devolución de llamada):
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);
El método app.listen () es un método conveniente para lo siguiente (si desea utilizar HTTPS o proporcionar ambos, utilice la técnica anterior):
app.listen = function(){
var server = http.createServer(this);
return server.listen.apply(server, arguments);
};
Cuál es la diferencia entrehttp.createServer(app)
yhttp.Server(app)
?? Los documentos http no son de ayuda.