http.createServer (app) v. http.Server (app)

Auf der socket.io Webseite,Get Started: Chat application, hier zu finden:

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

Es gibt diesen Code:

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

was könnte ein wenig deutlicher wie folgt umgeschrieben werden:

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

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

Das socket.io-Beispiel verwendet http.Server (), um einen Server zu erstellen. Die Expressdokumente für app.listen () zeigt ein Beispiel, in dem der Server mit @ erstellt wihttp.createServer(app):

app.listen ()
Binden Sie und warten Sie auf Verbindungen auf dem angegebenen Host und Port. Diese Methode ist identisch mit http.Server # listen () des Knotens.

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

Die von express () zurückgegebene App ist in Wirklichkeit eine JavaScript-Funktion, die als Rückruf zur Bearbeitung von Anforderungen an die HTTP-Server des Knotens übergeben werden soll. Auf diese Weise können Sie auf einfache Weise HTTP- und HTTPS-Versionen Ihrer App mit derselben Codebasis versehen, da die App diese nicht erbt (es handelt sich lediglich um einen Rückruf):

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);

Die app.listen () -Methode ist eine praktische Methode für Folgendes (wenn Sie HTTPS verwenden möchten oder beides bereitstellen möchten, verwenden Sie die oben beschriebene Methode):

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

Was ist der Unterschied zwischenhttp.createServer(app) undhttp.Server(app) ?? Die http-Dokumente sind keine Hilfe.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage