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

时间:2018-03-17 14:03:37

标签: json optimization socket.io size send

  1. 如下例所示的标签/空格是否会增加发送数据的大小?
  2.   return {
          id:self.id,
          username:self.username,
          score:self.score,
          level:self.level
      };  
    

    VS

      

    return {id:self.id,username:self.username   分数:self.score,等级:self.level};

    1. Json在0/1和true / false之间是否有任何大小差异?

    2. “11”(字符串)和11(双倍)之间是否存在大小差异?

    3. Json将每秒发送10次,使用socket.emit of Socket.io。

1 个答案:

答案 0 :(得分:0)

  1. 基于服务器端对象格式的大小应该没有区别。任何大小都取决于类型以及序列化程序如何实际转换对象属性。
  2. Json的0/1和true / false之间是否有任何大小差异? 可能存在对服务器类型的依赖,但是数字与布尔结果将在字符串(序列化)内"mybool:true,mynumber:1" 所以,如果你要选择尺寸" a:true,b:1"`注意NAME较小,所以序列化的内容就是。
  3. " 11"之间是否存在大小差异? (字符串)和11(双)?与第二个示例"mysuperlongnameisgreat:"11",mysuperlongnumbername:11" vs {"a":"11","b":11}"类似,因此排除这两个引号后数字会更小。
  4. 考虑到总处理(IF速度是一个问题),所有这一切都必须在客户端反序列化为JavaScript对象,因此如果您使用数字作为数字,则需要在某个时刻解析它到正确的类型,因此可能比序列化的内容大小更具影响力。

    请注意,对于短名称,您将对维护产生负面影响,因为维护简短的非描述性名称远比较长的名称更不直观。

    使用你的例子,它会更小"要做(假设一个强类型的服务器端)

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