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()
に従ってください。
これはすべて、起こっている可能性のある理由について全く私に迷っています。
私はそれを信じることができません。私はバグをキャッチしようとほぼ一日を過ごしました!そして、私はちょうど 'http://'部分を 'localhost:8888'アドレスの前に置かなかったことが判明しました!!!だから、そこに現れるゼロは混乱したビットから来ていると思います... – noncom
なぜ、socket.ioがこれに無知なのか、パワフルではありませんが、ノバデイが通常強制しないhttpのことを忘れるのは簡単です。クライアントソケットはhttp以外の場所では開けないので、少なくとも警告を出すことができ、ヘッダーがURLにないことは明らかです。 – noncom