Подтвердить что ты не робот

Http.createServer(приложение) v. http.Server(приложение)

На веб-странице 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 не помогают.

4b9b3361