客户端:
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 键时,客户端会向服务器发送一个名为绘图的数据包。这有效,服务器确实收到了数据包。此外,服务器在收到“绘图”数据包后确实广播了一个名为“绘图”的数据包,但由于客户端的某些原因,服务器广播后没有收到绘图数据包。
我盯着这段代码看了好几个小时,它看起来很简单,我希望新的眼睛能抓住这个简单的错误。
谢谢