数据序列化和将数据发送到服务器的最佳方法

时间:2018-11-29 08:44:12

标签: json

我正在评估数据序列化的最佳方法,并将数据包从IoT设备发送到服务器。 从我的初步研究来看,json格式更好,更简单,但是google协议缓冲区对于减少延迟来说更好。 期待在这里听到专家的意见。

角色扮演, 科马尔·古普塔(Komal Gupta)

2 个答案:

答案 0 :(得分:0)

取决于您的主要需求,有效负载的大小等。对于我们所讨论的json和协议缓冲区的延迟节省量,这可能不是功能性问题。在下游使用最简单的方法。如果您已经有一个可以处理协议缓冲区的后端,那很好,但是实现它们的机会成本要比JSON高。

基本上,我的正常做法是,使用最简单的方法(除非从字面上将您涂在角落里),直到遇到问题并进行优化为止。我怀疑我们正在谈论的优化水平不会有太大意义。

答案 1 :(得分:0)

仅对于 IoT,JSON 不是一个好的选择。根据我多年的工作经验,在实际的物联网项目中使用JSON来传输数据是非常少见的,甚至根本不存在。具体原因如下:

  1. 嵌入式使用C/C++编程,处理JSON比较麻烦,ProtoBuf更适合;
  2. 嵌入式设备不支持传统的编程语言。像 PLC 这样的设备只支持梯形图。 JSON 和 ProtoBuf 也不可行。二进制格式是唯一的选择;
  3. 网关通常用于在物联网中传输数据。网关只是将现场总线转换成以太网协议,并不知道具体的传输内容。所以传输格式仅限于二进制,需要服务器根据协议解析。

如果您也遇到上述情况,可以考虑在服务器端使用FastProto(https://github.com/indunet/fastproto)进行解码编码。