我正在考虑使用 gob ("encoding/gob") 来序列化网络协议中的数据,我一直在四处寻找,似乎找不到任何解决这些问题的方法:
消息框架 - gob 文档给人的印象是您可以简单地将 TCP 连接包装在 gob 解码器中并读取。但是如果你只收到半条消息会发生什么?gob 可以以某种方式处理这个问题,还是我被迫添加一个消息帧并将消息数据复制到缓冲区中以供 gob 反序列化?
不同类型的消息 - 协议有不同类型的消息,如何最好地使用 gob 处理?通过在每个 gob blob 之前有一个标识符来指示数据的类型?通过将所有消息放入包含所有不同消息的字段的“主”消息中(将其减少为仅一种类型的消息)?我尝试了后者(更简单),它似乎有一个巨大的开销(> 650字节)。