2011-07-09 20 views
7

node.jsサーバーを高速で稼働させていますが、socket.ioサーバー側とchrome 12クライアント側を使用してwebsocket接続を確立しようとしています。 。私が接続しようとすると、socket.ioは "destroying nonsocket.io upgrade"というデバッグメッセージを出力し、接続ハンドラのコードは実行されません。また、クライアントサイドでは、私のソケットのreadyStateは2(CLOSING)です。websocketの問題:node.jsサーバーに接続できません

[編集] 2

+0

あなたはサーバーに接続するためにクライアントでsocket.io.jsを使用していますか? – pkyeck

+0

ここにコードスニペット(またはgithubへのリンク)を置くことはできますか? –

+0

Node.jsとsocket.ioのどのバージョンを使用していますか? – apose

答えて

1

に0から変更されたソケットの readyStateのあなたのクライアントコードにsocket.io.jsファイルを挿入し、それを使用していることを確認してください。クライアント側で独自のwebsocketを作成しようとすると、おそらく問題が発生します。

サーバー用にこのような何かを:あなたが提供しているHTMLファイルの

var app = require('express').createServer() 
    , io = require('socket.io').listen(app); 

app.listen(80); 

app.get('/', function (req, res) { 
    res.sendfile(__dirname + '/index.html'); 
}); 

io.sockets.on('connection', function (socket) { 
    socket.emit('news', { hello: 'world' }); 
    socket.on('my other event', function (data) { 
    console.log(data); 
    }); 
}); 

と、このような何か:

<script src="/socket.io/socket.io.js"></script> 
<script> 
    var socket = io.connect('http://localhost'); 
    socket.on('news', function (data) { 
    console.log(data); 
    socket.emit('my other event', { my: 'data' }); 
    }); 
</script> 

を、あなたのウェブサーバディレクトリから/socket.io/socket.io.jsを提供していることを確認します。次に、オプションからWebブラウザの開発環境にコンソールログを表示するか、またはページに移動するとFirebugと表示されます。

+0

私のクライアントにsocket.io.jsを追加しようとすると、クライアントが「require」を見つけることができないというエラーが表示されます。私はsocket.io.jsコードを見て、requireを使用します。これは、サーバーサイド(つまり、ノード)のものだと思っていましたが、ブラウザでサポートされているJavaScriptのものではありませんでした。クライアント側に「require」を実装するために必要なライブラリがもう1つありますか?または私は何かを逃している? – Elisabeth

+0

@エリザベス新しい質問にする必要があります。クライアントではrequire()を使用しません。クライアントでは、

関連する問題