Socket.io:不发出任何事件

时间:2016-05-10 21:49:52

标签: node.js socket.io

我尝试发出事件"玩家移动"使用json-object:

    this.broadcast.emit("player move", JSON.stringify(player));

但在客户端我得到了这个:

INFO: > 5:::{"args":[{"x":108,"y":105}],"name":"player move"}

哪个不显示活动。为什么是这样? (这是来自JavaScript中的socket.io框架。)

我正在使用socket.io 0.9.17

编辑:更多代码

client.on('player move', onPlayerMove);

然后功能:

function onPlayerMove(data) {
var player = playerWithId(this.id);
if (!player) {
    util.log("Player not found: " + this.id);
    return;
}
player.setX(data.x);
player.setY(data.y);


this.broadcast.emit("player move", JSON.stringify(player));

}

1 个答案:

答案 0 :(得分:1)

如果我没有误会,你应该在第一个大括号和直接在方括号之后的撇号,这在JSON对象和JavaScript对象之间产生差异。 例如:

var text = '{ "employees" : [' + '{ "firstName":"John" , "lastName":"Doe" },' + '{ "firstName":"Anna" , "lastName":"Smith" },' + '{ "firstName":"Peter" , "lastName":"Jones" } ]}';

参考:JSON Howto - W3Schools

我希望这能回答你的问题!