1

クライアント側:

App.socket = io.connect('http://127.0.0.1:4000');
App.socket.on('draw', function(data) {
  console.log("drawing");   
  return App.draw(data.x, data.y, data.type);
});
...
$(document).keyup(function(e) {
  if (e.keyCode == 27) { 
    App.socket.emit('drawing');
  }   
});

サーバ側:

(function() {
  var io;
  io = require('socket.io').listen(4000);
  io.sockets.on('connection', function(socket) {
    socket.on('drawing', function() {  
      socket.broadcast.emit('draw', {
      x: 1,
      y: 1,
      type: "test"
      });  
    });
  });
}).call(this);

したがって、コードが行うことは、押された「esc」キーを検出することです。escキーが押されると、クライアントは描画と呼ばれるパケットをサーバーに送信します。これは機能し、サーバーはパケットを受信します。さらに、サーバーは「描画」パケットを受信した後に「描画」と呼ばれるパケットをブロードキャストしますが、クライアント側では、サーバーがブロードキャストした後、何らかの理由で描画パケットが受信されません。

私はこのコードを何時間も見つめてきました、それはとても単純なようです、私は新鮮な目が単純な間違いを捕らえることができることを望んでいます。

ありがとう

4

1 に答える 1

1

それを理解すると、socket.emit.broadcastは現在のソケット以外のすべてのソケット接続にパケットを送信します

于 2012-05-28T17:47:23.303 に答える