nodejs socket.io emit未执行

时间:2013-08-11 12:50:01

标签: node.js socket.io

我遇到的问题是第二个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(),但根本没有信息发送回服务器。

/ solve:问题是this.socket.emit中的“this”应该是uCanvas.socket.emit()。这是持有套接字的对象。

1 个答案:

答案 0 :(得分:0)

解决:问题是this.socket.emit中的“this”应该是uCanvas.socket.emit()。这是持有套接字的对象。