2011-11-15 13 views
1

Windows上で最新のバージョンのnodejs + socket.ioを使用して簡単なアプリケーションを開発しています。ソケットは、クライアント側で作成されますとき、私は、問題が発生しているが、コンソールで次の出力でsocket.emit結果は(Google Chromeを使用して):私は、ローカルホスト上でテストしていているため、非常に奇妙であるsocket.ioクライアント 'emit'はクロムコンソールに奇妙なエラーを表示します

GET http://0.0.34.184:8888/socket.io/1/?t=1321385855665&jsonp=0 

:8888ですので、少なくとも127.0.0.1で0.0.34.184でなくてはなりません。

<script type="text/javascript" src="socket.io/socket.io.js"></script> 

をその後、私は次のコードを使用して接続します:

socket = io.connect('localhost:8888'); 
socket.on("my_event", receiveNetEvent); 

console.log('LOG: sio init complete, socket=' + socket); 

ログ状態ソケット= [Objectオブジェクトを次のようにページ上socket.ioクライアントは、タグ内のサーバから要求されます] nullまたは未定義ではないので、すべてがうまくいくはずです。

itseldは、次の関数で実行されて送信:

function sendRequest(request){ 
    socket.emit('request', request); 
} 

requestオブジェクト、関数に渡さが形成され、このように渡さ:

var initRequest = {}; 
initRequest.subject = 'weather'; 
initRequest.key = 'initial'; 

sendRequest(initRequest); 

を、それが有効なJSONオブジェクトであります再度、console.log()に従ってください。

これはすべて、起こっている可能性のある理由について全く私に迷っています。

+0

私はそれを信じることができません。私はバグをキャッチしようとほぼ一日を過ごしました!そして、私はちょうど 'http://'部分を 'localhost:8888'アドレスの前に置かなかったことが判明しました!!!だから、そこに現れるゼロは混乱したビットから来ていると思います... – noncom

+0

なぜ、socket.ioがこれに無知なのか、パワフルではありませんが、ノバデイが通常強制しないhttpのことを忘れるのは簡単です。クライアントソケットはhttp以外の場所では開けないので、少なくとも警告を出すことができ、ヘッダーがURLにないことは明らかです。 – noncom

答えて

2

接続パスにhttp://を追加してみてください。それが私にとってこのエラーを解決しました。

socket = io.connect('http://localhost:8888'); 
+1

ありがとうございます。興味のある方は、window.location.hrefをwindow.locationに切り替えてください。接続元のURLにhttp://を追加しました(Chromeを使用) – Aaron

1

私は同じ問題に直面しましたが、別の理由がありました。私のセットアップでは、ポート9000のTomcatサーバー上でソケットクライアントを実行していましたが、localhostに接続していました:80 nodejsを実行していましたが、デフォルトでは80だったとしてもポートは必須でした。

は、だから私は

io.connectをポートを与え、置き換え( 'のhttp:// localhostの')io.connectで( 'のhttp:// localhost:80に')

両方のサーバが同じドメインを指していたので、この場合localhost ... socket ioが何らかの理由でポート9000を使用していました。

誰かに役立つことを願っています。

1

私も同じ問題に直面していましたが、サーバ側のjavascriptにxhr-pollingだけを強制して解決しました。

var io = require('socket.io').listen(8000); 
    io.configure(function() { 
     io.set('transports', ['xhr-polling']); 
    }); 
<..Rest code..> 
関連する問題