如何初始化socket.io的实例?

How to initialize an instance of socket.io?

我发现至少有两种方法可以做到这一点。第一种方法创建一个 HTTP 服务器,尽管第二种方法没有。 我找不到任何关于此的具体教程。

案例一

 var app = require('express')(); 
 var http = require('http').Server(app); 
 var io = require('socket.io')(http);
 http.listen(3000);

案例二

var app = require('express')(); 
var port = process.env.PORT || 3000;
var io = require('socket.io').listen(app.listen(port));

这两种方法有何不同?为什么第二种方法不需要 HTTP 服务器?

app.listen() 为您创建 http 服务器(express 让您使用的快捷方式)。

这是 app.listen() 的代码:

app.listen = function(){
  var server = http.createServer(this);
  return server.listen.apply(server, arguments);
};

这个快递代码是here