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 に答える