На веб-странице socket.io Get 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()
Связывание и прослушивание соединений на данном хосте и порту. Эта метод идентичен node http.Server # listen().var express = require('express'); var app = express(); app.listen(3000);
Приложение, возвращаемое функцией express(), фактически является функцией JavaScript, предназначенный для передачи HTTP-серверам node в качестве обратного вызова для обработки Запросы. Это позволяет предоставлять как 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 docs не помогают.