【问题标题】:Socket.io: emit no eventSocket.io:不发出任何事件
【发布时间】:2016-05-11 16:49:51
【问题描述】:

我尝试使用 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));

}

【问题讨论】:

    标签: node.js socket.io


    【解决方案1】:

    如果我没记错的话,你应该在第一个大括号和方括号之后的一个撇号,这使得 JSON 对象和 JavaScript 对象之间有所不同。 示例:

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

    参考:JSON Howto - W3Schools

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

    【讨论】:

    • 嗯,我使用 JSON.stringify() 所以我认为格式很好。
    • 那么,如果可能的话,您能否提供更多代码(在客户端和服务器端)?谢谢!
    猜你喜欢
    • 2014-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-31
    • 2019-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多