从 socket.io 0.9.x 迁移到 1.4.x - 无法让 socket.io 开始
Migrating from socket.io 0.9.x to 1.4.x - can't get socket.io to start
我正在更新旧应用程序以使用 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(server) 以防通过服务器还不够,但这也没有效果。我不认为这是错误的语法......但我显然缺少一些步骤来让它像以前一样工作。
我会尽量在此处提供有用的答案,这样您就可以结束问题了。
您的第二个代码块与 socket.io 文档中显示的此组合完全一致。唯一的区别是它们使用 .Server()
构造函数而您使用 .createServer()
方法(如果您查看代码)做同样的事情:
var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
server.listen(8080);
所以,我不认为这是问题所在。要检查的一些事项:
- 节点控制台中是否显示任何启动错误?
- 你怎么知道socket.io没有启动? post 1.0 世界中的一个区别是 socket.io 服务器代码在启动时不会像在 0.9x 世界中那样向控制台输出任何内容。这让很多人感到困惑。
- 如果还有问题,请出示相应的客户端代码。
编辑:正如 OP 在调查我询问的其他一些事情时在评论中发现的那样,socket.io 服务器启动得很好 - OP 只是希望看到一些控制台输出,这些输出在1.x版本。
我正在更新旧应用程序以使用 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(server) 以防通过服务器还不够,但这也没有效果。我不认为这是错误的语法......但我显然缺少一些步骤来让它像以前一样工作。
我会尽量在此处提供有用的答案,这样您就可以结束问题了。
您的第二个代码块与 socket.io 文档中显示的此组合完全一致。唯一的区别是它们使用 .Server()
构造函数而您使用 .createServer()
方法(如果您查看代码)做同样的事情:
var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
server.listen(8080);
所以,我不认为这是问题所在。要检查的一些事项:
- 节点控制台中是否显示任何启动错误?
- 你怎么知道socket.io没有启动? post 1.0 世界中的一个区别是 socket.io 服务器代码在启动时不会像在 0.9x 世界中那样向控制台输出任何内容。这让很多人感到困惑。
- 如果还有问题,请出示相应的客户端代码。
编辑:正如 OP 在调查我询问的其他一些事情时在评论中发现的那样,socket.io 服务器启动得很好 - OP 只是希望看到一些控制台输出,这些输出在1.x版本。