设计与受教育于
发布时间
阅读量:
阅读量
游戏服务端实现了角色创建功能。当角色创建出现故障时, 为了准确反馈问题信息, 服务端需将具体错误原因发送给客户端, 如角色名称无效或SQL语句解析失败等具体情况。现有设计的核心理念是通过特定数据包的形式传递详细的技术信息, 其中包含唯一标识符CREATE_PLAYER_ERR(该标识符属于应用层协议)。在收到该数据包后, 客户端会根据内部预定义的映射关系解析相应的内容信息并完成反馈流程
我们的服务端由C++语言与lua框架共同开发,对应的客户端采用C#语言进行开发.其中包标识符存储在一个名为msg.lua的lua脚本文件中.在项目的构建过程中会根据msg.lua自动生成相应的.h头文件与.cs代码块,这样编译好的项目可以在源码中直接引用CREATE_PLAYER_ERR等标识符,无需手动输入对应的魔法数字(magic number).然而,在错误码这类二层协议层面却没有类似的自动化机制支持.例如,CREATE_PERFORMANCE_ERROR_1005这样的错误码标识符只能通过lua脚本进行管理.
我在编码过程中难以忍受magic number的存在。但是又不想为此类代码建立自动生成机制。于是采取了措施改进报错逻辑。利用msg.lua技术将不同类型的错误原因对应到特定的包ID上,并实现了将这些信息传递给相关系统而不依赖传统的出错码的方法。这样在角色创建过程中遇到不同类型的错误
全部评论 (0)
还没有任何评论哟~
