http.createServer (приложение) v. http.Server (приложение)
На веб-странице socket.ioGet Started: Chat application
, расположенный здесь:
http://socket.io/get-started/chat/
есть этот код:
var app = require('express')();
var http = require('http').Server(app);
который может быть переписан немного более ясно, как это:
var express = require('express');
var http = require('http');
var app = express();
var server = http.Server(app);
Пример socket.io использует http.Server () для создания сервера. Тем не менее, экспресс-документы дляapp.listen () показать пример, где сервер создан с использованиемhttp.createServer(app)
:
app.listen ()
Свяжите и прислушайтесь к соединениям на данном хосте и порте. Этот метод идентичен http.Server # listen узла ().
var express = require('express');
var app = express();
app.listen(3000);
Приложение, возвращаемое функцией express (), фактически является функцией JavaScript, предназначенной для передачи на HTTP-серверы узла в качестве обратного вызова для обработки запросов. Это позволяет вам легко предоставлять как HTTP, так и HTTPS версии вашего приложения с одной и той же кодовой базой, поскольку приложение не наследует их (это просто обратный вызов):
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 () является удобным методом для следующего (если вы хотите использовать HTTPS или предоставить оба, используйте метод выше):
app.listen = function(){
var server = http.createServer(this);
return server.listen.apply(server, arguments);
};
В чем разница междуhttp.createServer(app)
а такжеhttp.Server(app)
?? Http документы не помогают.