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.