我在前端有一个对象,我想将它广播给所有连接的客户端。我可以按照我定义它的方式将它作为纯粹的对象发送吗?还是我总是必须在发送之前将其字符串化为 JSON 对象?
我的对象:
var myBox = {
x: 400,
y: 700,
w: 231,
h: 199,
c: "red",
....
}
我需要字符串化吗?
var myBox = JSON.stringify({
x: 400,
y: 700,
...
});
目前我是这样发送的,msg 是一个 JSON:
socket.emit('message', msg);
最佳答案
您可以将对象传递给 emit
而无需自己对其进行字符串化。它将以明文形式发送,但客户端回调将传递一个已解析的对象。
换句话说,这样做没问题:
var myBox = {
x: 400,
y: 700,
w: 231,
h: 199,
c: "red"
}
socket.emit('message', myBox);
在客户端监听时,无需担心JSON.parse
:
socket.on('message', function (data) {
alert(data.x);
});
关于javascript - socket.io - JSON 是发送对象所必需的吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16592908/