1

私はsocket.ioが初めてで、サイトに記載されている例を試しています。順調に進んでいますが、サーバー側で io.emit を使用してクライアント側で受信しようとすると問題が発生します。

これが私のサーバーコードです

var io=require("socket.io").listen(8888);
io.set('log level',1);
io.on('connection',function(socket){ 
socket.emit('hi');
console.log("Connected");
});

そして私のクライアントのコード

<script src="http://localhost:8888/socket.io/socket.io.js"></script>
<script>
var socket=io.connect("http://localhost:8888");
socket.set('log_level',1);
socket.on('hi',function(){
console.log('received');
});
</script>

問題は、コンソールに「受信済み」というメッセージが表示されないことです! 答えは些細なことかもしれませんが、実験を試みましたが毎回失敗しました。ガイドしてください....

私はubuntu firefoxを使用しています。ノードのバージョン: 0.8.7

4

2 に答える 2

1

したがって、サーブ側でこれを行う必要があります。

var io = require('socket.io').listen(88888);
io.set('log level',1);
io.sockets.on('connection', function (socket) {
  socket.emit('hi);
  console.log("Connected");
  });
});

そして、クライアント側にこれが必要です:

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

多くの html5 機能のような WebSocket は、非 Web サーバー環境では機能しません。つまり、ファイル プロトコルを使用してクライアントにアクセスしている場合は機能しません。http サーバーが必要です。簡単に物事を成し遂げるために私がしていることは、python 組み込みの Web サーバーを使用することです。それは仕事をします。次のようにクライアントフォルダーに生成するだけです:

python -m SimpleHTTPServer

次に、ブラウザでポート 8000 (デフォルト) を指定します。

私は、複製したり、 dotCloud.comに直接プッシュしたりできるボイラー プレートの socket.io アプリを作成しまし た。これは単純な例であり、socket.io を使い始めるのに役立ちます。

于 2012-08-25T11:21:27.490 に答える
0

soket.io GitHub ページで例を探してください。

あなたが書いた:io.on('connection'代わりにio.sockets.on('connection'

このコードは正常に動作するはずです:

var io = require('socket.io').listen(8888);
io.set('log level', 1);
io.sockets.on('connection', function(socket){ 
    socket.emit('hi');
    console.log("Connected");
});
于 2012-08-25T11:20:00.693 に答える