我遇到了以下代码中的第二个 emit() 的问题(如果有更多需要,我已经选择了重要的部分),它正在发送一个“stateChange”-Event,似乎没有被执行。服务器接收到“ID”事件。
this.socket = io.connect('...');
this.socket.emit("ID", {canvasID: this.ID});
this.socket.on(PLACE_BUBBLE, function(data){
var node = uCanvas.placeBubble(data.x1, data.y1);
this.socket.emit("stateChange",
{action : PLACE_BUBBLE, canvasID : this.ID, nodeID : node.nodeID, x : node.x, y : node.y});
});
服务器看起来像这样:
socketio.sockets.on("connection", function(socket){
socket.on("ID", function(data){
...
});
socket.on("stateChange", function(data){
...
});
});
placeBubble() 被执行,但根本没有信息发送回服务器。
/已解决:问题是 this.socket.emit 中的“this”,应该是 uCanvas.socket.emit()。这是持有套接字的对象。