套接字.io -是发送对象必须的JSON
socket.io - is JSON a must to send an object
我在前端有一个对象,我想把它广播给所有连接的客户端。我可以像我定义的那样,把它作为一个单纯的对象发送吗?还是在发送之前必须将其字符串化为JSON对象?
我对象:var myBox = {
x: 400,
y: 700,
w: 231,
h: 199,
c: "red",
....
}
我需要stringify吗?
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);
});
是的,要发送一个对象,你需要将它序列化为一个字符串(或者确切地说,是ArrayBuffer)——一些比特序列通过网络(在HTTP/WS的引线下)。
然而,序列化不一定是JSON.stringify
,它也可以是其他任何东西。
从我在他们的文档中读到的,Socket。io具有"自动JSON编码/解码",因此它将为您调用JSON.stringify
,并接受普通对象作为.emit
的参数。
你可以做一个套接字。用对象的数据发出。
:
socket.emit("message",{x:myBox.x,y:myBox.y, w:myBox.w, h:myBox.h, c:myBox.c});
或尝试:
socket.emit("message",myBox); //haven't tested it, but if it works, give plalx credit
相关文章:
- 引用对象中的通用值
- 如何为json对象中的段发送array[]
- 使用Facebook live API创建实时视频对象时的隐私设置
- 访问JSON对象内部的数组元素
- 对具有ui typeahead的对象中的值执行orderBy
- 设置嵌套对象属性的更好方法
- 带有对象/原型的链式承诺(Q延期)
- 正在更新mongod中两个对象内部的数组
- 如何访问对象内部的“categoryIds”字段/键,该对象包含mongodb's `ObjectId(s)`数
- 使用同一对象中的其他变量声明变量
- 使用javascript比较对象中的对象值和数组长度
- 如何使用element.myobj.prop等具有对象属性的元素
- 带有对象解析的响应javascript ajax失败
- 替换另一个变量对象中的变量值
- 在javascript中移动对象内部的元素
- 对象中的str.replacement()
- 原始javascript将json对象中的项目打印到列表中的屏幕上
- 套接字.io -是发送对象必须的JSON
- 烬你必须包含'id'对于传递给'push'对象中的客户
- 当某些对象必须避免配对在一起时,如何将一个数组的元素随机映射到另一个数组中的元素