2012-05-12 33 views
1

客户端: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键被按下时,客户端发出一个叫做绘图的包到服务器。这工作,并且服务器确实收到数据包。此外,服务器在收到“绘图”数据包后广播一个名为“draw”的数据包,但由于某种原因,在客户端,服务器广播它后未收到绘图数据包。

我一直在盯着这段代码几个小时,看起来很简单,我希望新鲜眼睛能够捕捉到这个简单的错误。

感谢

+1

想通了每一个socket连接,socket.emit.broadcast发送报文,除了目前的插座每个插座连接 –

+0

如果你把它写成答案以便它能帮助别人,那会更好。 –

回答

1

想通了,socket.emit.broadcast发送报文,除了目前的插座

相关问题