[gogf/gf]建议支持下protobuf协议

2024-07-09 408 views
9

现在互联网公司大部分用protobuf替代json格式了 可不可以在*ghttp.Request里支持下绑定body-->pb.go对象的方法 在response对象里增加response.ProtobufExit()方法

回答

9

还有个比较常见的场景,尤其是在游戏开发里。短链接下用户某个request触发了一些逻辑,这些逻辑导致了用户任务数据,用户属性等关联表的变化。这些变化客户端时需要感知的,这时候服务器可以把这些数据对应的response整合成一个[]response数组一起返给客户端,客户端通过监听不同的response做对应逻辑的处理。 我们公司设计的协议里 最外层是sequenceid 和 []rawany 前者用于短链接客户端请求保序的,后者用于处理批量请求,rawany里才是一条一条的req resp协议

0

同求,建议websocket 增加protobuf 协议支持

1

@ayamzh 你是指body二进制参数直接转换到pb对象上吗?protobuf不是本来就是对应的二进制到对象转换方法吗?

3
b := &pb.HelloRequest{}
proto.Unmarshal(r.GetBody(),b)
fmt.Println("反序列化之后的信息为:",b)   

我是这意思,把这个步骤封装到parse系列方法列 比如r.parseBodyBinary(b)

5

@gqcn @fzqk9

7

你可真懒,省这几句代码。实在想简化,自己封装个工具方法反序列一下不行吗?pb的解析封装到http的包中不太合适。

0

是不是可以使用插件plugin的形式,把这个封装成方法加进去呢?