だから私はあなたがおそらくすでに千回見たことがあるこの非常に基本的なsocket.ioセットアップを持っています。
ここでは、ファイルがapacheを介して提供されることに注意してください。
サーバー(app.js)
var io = require('socket.io').listen(8080);
io.sockets.on('connection', function(socket){
socket.emit('server ready', {msg: 'hi'}) ;
socket.on('random event', function(data) {
console.log('received');
})
});
とクライアント
$(document).ready(function() {
var socket = io.connect('http://127.0.0.1:8080/projectname/server/');
socket.on('server ready', function(data){
console.log('server ready!');
});
socket.emit('random event', {hurr: 'durr'});
});
しかし、私が得る唯一の出力は
debug - websocket writing 5:::{"name":"server ready","args":[{"msg":"hi"}]}
ノードコンソールでは何も表示されず、クライアントコンソールでは何も表示されません。どちらが間違っています。
私はsocket.ioWebサイトの基本的な例を試しましたが、まったく同じ動作を示しています。放出されたデータをノードコンソールに記録しますが、他には何も起こらないようです。
編集:さらに調査すると、Firefoxでサイトにアクセスすると、ノードコンソールに別の出力が作成されます。
info - handshake authorized 178702677759276313
debug - setting request GET /socket.io/1/xhr-polling/178702677759276313?t=1339080239192
debug - setting poll timeout
debug - client authorized for
debug - clearing poll timeout
debug - xhr-polling writing 1::
debug - set close timeout for client 178702677759276313
debug - xhr-polling received data packet �17�1::/stock/server/�66�5::/stock/server/:{"name":"random event","args":[{"hurr":"durr"}]}
debug - setting request GET /socket.io/1/xhr-polling/178702677759276313?t=1339080239263
debug - setting poll timeout
debug - clearing poll timeout
debug - xhr-polling writing 5:::{"name":"server ready","args":[{"msg":"hi"}]}
これは、クライアントから送信されたデータが実際にサーバーに到達したように見えます。ただし、実際の問題は解決されていないようです。console.log行と、クライアント側とサーバー側の両方が実行されました。この出力はFirefox5.0.1からのもので、xhrにフォールバックしているようです。
よろしくお願いします!