socket.io客户端没有收到数据包

时间:2012-05-12 22:42:29

标签: node.js socket.io

客户端:

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键时,客户端会向服务器发送一个名为drawing的数据包。这有效,服务器确实收到了数据包。此外,服务器在收到“绘图”数据包后会广播一个名为“绘图”的数据包,但由于某种原因在客户端,服务器广播后不会收到绘图数据包。

我一直盯着这段代码好几个小时,看起来很简单,我希望新鲜的眼睛能抓住这个简单的错误。

由于

1 个答案:

答案 0 :(得分:1)

想出来,socket.emit.broadcast将数据包发送到除当前套接字之外的每个套接字连接