[发明专利]业务逻辑的实现方法和系统有效
申请号: | 201410466665.1 | 申请日: | 2014-09-12 |
公开(公告)号: | CN105407075B | 公开(公告)日: | 2019-01-11 |
发明(设计)人: | 陈博 | 申请(专利权)人: | 博雅网络游戏开发(深圳)有限公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06 |
代理公司: | 广州华进联合专利商标代理有限公司 44224 | 代理人: | 何平 |
地址: | 518057 广东省深圳市南山区中山*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 业务 逻辑 实现 方法 系统 | ||
本发明提供了一种业务逻辑的实现方法和系统。所述方法包括:在C++层由接收到的数据包获取协议命令字,以得到相应的lua文件规定的协议,根据得到的协议解析数据包得到参数;根据所述协议命令字获取lua层中对应的协议命令字处理函数;将所述参数传入所述获取得到的协议命令字处理函数,以实现业务逻辑。所述系统包括:数据包处理模块、函数获取模块和业务逻辑处理模块。采用本发明易于扩展,能提高业务逻辑的灵活性。
技术领域
本发明涉及计算机应用技术,特别是涉及一种业务逻辑的实现方法和系统。
背景技术
随着计算机技术的发展,开发人员常通过开发各种服务器引擎实现各种业务逻辑。例如,通过开发的服务器引擎实现游戏业务逻辑。
传统的服务器引擎在接收到数据包之后,直接通过栈的方式将接收到的数据包压给服务器引擎中的lua(一种动态类型语言)层进行解析,进而使得服务器引擎在数据交换方面存在着一定的性能损耗。
因此,为了减少服务器引擎在数据交换上的性能损耗,将通过服务器引擎中的C++层解析数据包的包头,并根据不同的命令字来读取数据包中的包体。
但是,这将存在着不利于扩展的局限性,也就是说,当新加一个命令字、修改一个协议的数据体时,都需要进行C++代码的修改,并进行重新编译,缺乏灵活性。
发明内容
基于此,有必要针提供一种易于扩展、能提高灵活性的业务逻辑的实现方法。
此外,还有必要提供一种易于扩展、能提高灵活性的业务逻辑的实现系统。
一种业务逻辑的实现方法,包括如下步骤:
在C++层由接收到的数据包获取协议命令字,以得到相应的lua文件规定的协议,根据得到的协议解析数据包得到参数;
根据所述协议命令字获取lua层中对应的协议命令字处理函数;
将所述参数传入所述获取得到的协议命令字处理函数,以实现业务逻辑。
在其中一个实施例中,所述在C++层由接收到的数据包获取协议命令字,以得到相应的lua文件规定的协议,根据得到的协议解析数据包得到参数的步骤包括:
初始化服务器,并解析所述lua文件以得到所述lua文件中包含的协议,存储所述得到的协议。
在其中一个实施例中,所述在C++层由接收到的数据包获取协议命令字,以得到相应的lua文件规定的协议,根据得到的协议解析数据包得到参数的步骤包括:
通过C++层接收发送至服务器请求进行业务逻辑处理的数据包;
C++层从数据包的包头中获取协议命令字;
C++层根据协议命令字查找由所述lua文件中包含的协议,根据所述查找到的协议,解析所述数据包以得到参数。
在其中一个实施例中,所述方法还包括:
根据所述lua层中当前触发的事件回调所述C++层中的接口,通过所述C++层中的接口调用所述C++层中设置的模块实现所述当前触发的事件。
在其中一个实施例中,所述当前触发的事件包括写日志事件、定时器事件、服务器事件、客户端事件以及数据库操作事件。
一种业务逻辑的实现系统,包括:
数据包处理模块,用于在C++层由接收到的数据包获取协议命令字,以得到相应的lua文件规定的协议,根据得到的协议解析数据包得到参数;
函数获取模块,用于根据所述协议命令字获取lua层中对应的协议命令字处理函数;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于博雅网络游戏开发(深圳)有限公司,未经博雅网络游戏开发(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410466665.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种带有数字视频监控取证装置的电动汽车充电桩
- 下一篇:一种可辨方向的充电器