游戏服务端框架之客户端协议组合下发

本文探讨了在游戏服务端框架中如何优化客户端协议,通过多包组合的方式减少流量消耗,防止客户端解包导致的卡顿,并提高交互效率。详细介绍了代码设计,包括数据结构、CombineMessage类的实现以及编解码处理,同时提供了测试用例。
摘要由CSDN通过智能技术生成

背景

很多时候,客户端一个请求过来,服务端可能需要发多个响应消息。典型地,当客户端请求加载登录加载资源完成,服务端需要推送非常多的消息。功能模块越多,消息也越多。这个时候,可能就需要对下发的客户端协议进行优化。
个人理解,针对这种情况,比较好的优化方式是整合多个小消息一起下发。也就是说,对于多个消息,我们不直接一个一个下发,而是把多个消息看作一个特殊的消息组合下发

多包组合的优点

1. 省流量。由于每个消息都会一些包头,几个消息一起下发也只需要一个包头。
2. 防止客户端解包降帧。客户端每帧拆包的数量是有限的,瞬间拆多个包看起来就会卡。
3. 提高游戏客户端与服务器之间的交互效率,减少通信延迟。
当然,组合包的应用场合,应该是整合多个小的消息。如果单独的消息体信息量大,那么就没必要整合了。

代码设计

对于我们的服务端框架,加上一个组合包,代码也很少。
首先,由于每个消息都带有模块号,类型id,还有消息体,我们有必要抽象出这个整体概念,也是为了传输数据方便。

public class Packet {

	@Protobuf(order = 
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jforgame

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值