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 документы не помогают.

Ответы на вопрос(1)

Ваш ответ на вопрос