关于 Socket.io/Node.js 发送的 Json 数据大小的问题?

Questions about size of Json data sent by Socket.io/Node.js?

  1. tab/space会像下面的例子那样增加发送数据的大小吗?
  return {
      id:self.id,
      username:self.username,
      score:self.score,
      level:self.level
  };  

return {id:self.id,username:self.username score:self.score,level:self.level};

  1. Json的0/1和true/false有大小差异吗?

  2. “11”(字符串)和 11(双精度)在大小上有区别吗?

Json 将每秒发送 10 次 socket.emit,共 Socket.io。

  1. 基于服务器端对象格式的大小应该没有差异。任何大小都取决于类型以及序列化程序实际转换对象属性的方式。
  2. Json 的 0/1 和 true/false 之间有大小差异吗? 可能依赖于服务器类型,但数字与布尔结果将在字符串(序列化)内作为 "mybool:true,mynumber:1" 因此,如果您要优化大小 "a:true,b:1"` 请注意名称较小,因此序列化的内容将是。
  3. “11”(字符串)和 11(双精度)之间有大小差异吗?类似于第二个示例 "mysuperlongnameisgreat:"11",mysuperlongnumbername:11" vs {"a":"11","b":11}" 因此通过排除这两个引号,数字较小。

考虑到总处理量(如果速度是一个问题),所有这些都必须在客户端反序列化为 JavaScript 对象,因此如果您将数字用作数字,则需要在某些时候将其解析为正确的类型,因此可能比序列化内容大小的影响更大。

请注意,短名称会对维护产生负面影响,因为维护短 non-descriptive 名称比维护长名称更不直观。

使用您的示例,"smaller" 要做(假设服务器端是强类型)

 return {
      d:self.id,
      n:self.username,
      s:self.score,
      v:self.level
  };