Node.js io优化:Socket.io是否发送JSON字符串?我们如何优化这一点?
根据这个问题:(),您可以通过将数据转换为JSON字符串并查找其长度来粗略计算数据包的大小 例如,这难道不意味着数字12345678占用的字节数与字符串“12345678”的字节数相同,即使一个是字符串,一个是数字 此外,这是否意味着舍入数字会减少大小?因此,您可以发送3.5而不是3.49362627 减少属性标记的长度是否也会提高大小?您可以{w:4}而不是:{width:4}Node.js io优化:Socket.io是否发送JSON字符串?我们如何优化这一点?,node.js,websocket,socket.io,Node.js,Websocket,Socket.io,根据这个问题:(),您可以通过将数据转换为JSON字符串并查找其长度来粗略计算数据包的大小 例如,这难道不意味着数字12345678占用的字节数与字符串“12345678”的字节数相同,即使一个是字符串,一个是数字 此外,这是否意味着舍入数字会减少大小?因此,您可以发送3.5而不是3.49362627 减少属性标记的长度是否也会提高大小?您可以{w:4}而不是:{width:4} 感谢您帮助理解socket.io发送的数据包的大小。欢迎使用任何其他通用优化技巧。Socket.io序列化/反序列化
感谢您帮助理解socket.io发送的数据包的大小。欢迎使用任何其他通用优化技巧。Socket.io序列化/反序列化由
JSON.stringify()
/JSON.parse()
执行。在这个过程中,一切都变成了字符串。因此,如果您想最小化数据包大小(例如使用toFixed
),您最好将数字格式化为较小的字符串。请注意,在JSON格式中,在字符串周围添加了双引号“
,这使字符串长了2个字节
另一个后果是:对象的函数在序列化过程中丢失
优化提示:
还要注意的是
JSON.stringify
调用对象的toJSON
函数。在此基础上,我找到了一些愚蠢的方法来发送更少的字节!1)使用1和0,而不是true和false。2)在服务器端,不发送任何对象。只需发送数组,并让客户端使用元素顺序将其解析为对象。