从socket.io 0.9.x迁移到1.4.x - 无法启动socket.io

时间:2015-03-09 00:01:07

标签: node.js socket.io migration

我正在更新旧应用程序以使用socket.io 1.4而不是0.9(并表示4而不是3)但我无法启动socket.io。在我的旧应用程序中,我会按如下方式设置:

var socket = require('socket.io');
var express = require('express');
var http = require('http');

var app = express();
var server = http.createServer(app);

var io = socket.listen(server);
server.listen(8080);

根据1.x文档,我认为这应该有效:

var express = require('express');
var http = require('http');

var app = express();
var server = http.createServer(app);

var io = require('socket.io')(server);
server.listen(8080);

我无法弄清楚我错过了什么。试图添加 io.listen(服务器),以防通过服务器不够,但这也没有效果。我不认为这是错误的语法......但我显然错过了让它像以前一样工作的一些步骤。

1 个答案:

答案 0 :(得分:0)

我会尝试在这里提供一个有用的答案,以便您可以提出问题。

您的第二个代码块与socket.io doc中显示的此组合完全一致。唯一的区别是他们使用.Server()构造函数并使用.createServer()方法(如果你看代码)做同样的事情:

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

所以,我不认为这就是问题所在。有些事要检查:

  1. 节点控制台中是否显示任何启动错误?
  2. 你怎么知道socket.io没有启动? 1.0版本世界的一个不同之处在于socket.io服务器代码在启动时不会像在0.9x世界中那样向控制台输出任何内容。这让很多人感到困惑。
  3. 如果您仍有问题,请显示相应的客户代码。

  4. 编辑:正如OP在评论时发现我在调查其他一些问题时发现,socket.io服务器启动得很好 - OP只是期望在1.x版本之前看到一些控制台输出