【发布时间】:2017-07-26 08:20:32
【问题描述】:
我是 socket.io 的新手,不熟悉如何处理他们的数据结构。根据另一篇文章,我需要使用“socket.rooms”来找出套接字所在的房间。但是,如果我在控制台日志中打印出“socket.rooms”,我会得到 [Object object]。它是某种类型的对象,但没有任何关于如何正确访问该对象的文档,我不知道该怎么做。
下面的代码很简单,我想要“??????”成为他们所在的房间。显然,他们可能在多个房间中,在这种情况下,我可以建立一个循环......但对于我正在构建的内容,他们只会在一个房间里。
// Send Message
socket.on('game_update', function(data){
var tStamp = Date.now();
console.log(tStamp +" - "+ data.msg);
io.in('????').emit('game_update', {time: tStamp, msg: data});
});
【问题讨论】:
-
我得到 [Object object]。 — 您是在打印
socket.rooms还是像在示例中使用 data.msg 一样将其转换为字符串(例如 @ 987654323@)? -
为了记录对象的内容,使用 JSON.stringify(obj)
-
不要使用
JSON.stringify,这会丢弃大多数数据类型。 -
@Quentin - 我只是打印 socket.rooms 产生 [Object object]
-
@Quentin - 不抱歉,我错了,查看我的代码,我确实将它转换为字符串。我尝试按照您的建议打印对象,并且确实显示了对象内部的元素。谢谢!
标签: javascript node.js socket.io