5

我试图让 connect 和 socket.io 很好地和简单地一起工作。我在服务器端有以下代码:

var connect = require('connect'),
    io = require('socket.io');

var app = connect().use(connect.logger('dev'));
var sio = io.listen(app);

app.listen(8000);

当我打开http://localhost:8000/socket.io/socket.io.js时 出现错误:

Cannot GET /socket.io/socket.io.js

并且 Socket.IO 不起作用,我正在尝试复制文件并从另一个位置加载,但 socket.io 请求没有到达服务器

4

1 回答 1

10

解决方案

如果有人遇到此问题,您需要将 connect/express 应用程序包装在节点 http.Server 中。app.listen() 方法是一个方便的方法,它返回服务器:

var io = require('socket.io');
var app = connect();
var server = app.listen(3000);
io.listen(server);

或以下等效:

var io = require('socket.io');
var http = require('http');
var app = connect();
var server = http.createServer(app);
server.listen(3000);
io.listen(server);
于 2012-04-18T05:22:17.587 回答