利索能及
我要发布
收藏
专利号: 2018102894261
申请人: 武汉斗鱼网络科技有限公司
专利类型:发明专利
专利状态:已下证
更新日期:2026-06-15
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种消息锁处理方法,应用于游戏客户端,其特征在于,包括:监控所述游戏客户端与游戏服务端之间是否发生断线重连;

如果是,对所述游戏客户端的本地数组加锁,触发从所述本地数组中取出第一套接字socket消息的事件中断,其中,所述第一socket消息为在所述游戏客户端与所述游戏服务端之间发生断线重连之前存入所述本地数组的至少一个socket消息;

在所述游戏客户端与所述游戏服务端之间重新处于连接状态下,若监控到所述游戏客户端的游戏界面重新打开,对所述本地数组解锁;

向所述本地数组中存入第二socket消息,触发对从所述本地数组中取出所述第一socket消息和所述第二socket消息进行处理的事件执行。

2.如权利要求1所述的消息锁处理方法,其特征在于,在监控所述游戏客户端与游戏服务端之间是否发生断线重连之后,还包括如下步骤:步骤a、在所述游戏客户端与所述游戏服务端之间发生断线重连之前,若接收到当前socket消息,存储所述当前socket消息至所述本地数组;

步骤b、从所述本地数组中取出所述当前socket消息进行处理,基于处理得到的游戏数据进行游戏过程;

重复执行所述步骤a至步骤b,直至所述游戏客户端与所述游戏服务端之间发生所述断线重连。

3.如权利要求2所述的消息锁处理方法,其特征在于,所述从所述本地数组中取出所述当前socket消息进行处理,包括:判断所述本地数组中当前是否存在未处理的socket消息;

如果是,从所述本地数组中取出所述未处理的socket消息进行处理,否则将用于从所述本地数组中取出socket消息进行处理的进程处于阻塞状态,直到向所述本地数组中存入所述当前socket消息,从所述本地数组中取出所述当前socket消息进行处理。

4.如权利要求1-3中任一项所述的消息锁处理方法,其特征在于,向所述本地数组中存入第二socket消息,触发对从所述本地数组中取出所述第一socket消息和所述第二socket消息进行处理的事件执行,包括:向所述游戏服务端发送空消息,所述空消息用于触发所述游戏服务端向所述游戏客户端反馈所述第二socket消息;

接收并存储所述第二socket消息至所述本地数组;

以存储所述第二socket消息至所述本地数组的事件,触发对从所述本地数组中顺次取出所述第一socket消息和所述第二socket消息进行处理的事件执行。

5.如权利要求1-3中任一项所述的消息锁处理方法,其特征在于,所述向所述本地数组中存入第二socket消息,触发对从所述本地数组中取出所述第一socket消息和所述第二socket消息进行处理的事件执行,包括:等待所述游戏服务端主动下发所述第二socket消息;

将所述游戏服务端主动下发的所述第二socket消息存储至所述本地数组;

以存储所述第二socket消息至所述本地数组的事件,触发对从所述本地数组中顺次取出所述第一socket消息和所述第二socket消息进行处理的事件执行。

6.如权利要求2所述的消息锁处理方法,其特征在于,所述接收到当前socket消息,包括:接收来自所述游戏服务端的N个二进制消息块,其中,所述N个二进制消息块为所述游戏服务端下发的原始socket消息被拆分为所述N个二进制消息块,将所述N个二进制消息块传送至所述游戏客户端,N为大于或等于1的整数;

将所述N个二进制消息块拼接为二进制完整消息;

解析所述二进制完整消息,获得所述当前socket消息。

7.如权利要求6所述的消息锁处理方法,其特征在于,所述原始socket消息包括消息头和消息体,所述消息头中指明消息体长度,所述原始socket消息被拆分后,所述消息体长度携带在所述N个二进制消息块的第一个二进制消息块中;

所述将所述N个二进制消息块拼接为二进制完整消息体,包括:

接收来自所述游戏服务端的所述N个二进制消息块的第一个二进制消息块;

从所述N个二进制消息块的第一个二进制消息块中识别出所述消息体长度;

根据所述消息体长度,接收所述N个二进制消息块中在第一个二进制消息块之后的N-1个二进制消息块;

拼接所述N个二进制消息块,得到所述二进制完整消息。

8.一种消息锁处理装置,应用于游戏客户端,其特征在于,包括:断线重连单元,用于监控所述游戏客户端与游戏服务端之间是否发生断线重连;

加锁单元,用于如果是,对所述游戏客户端的本地数组加锁,触发从所述本地数组中取出第一套接字socket消息的事件中断,其中,所述第一socket消息为在所述游戏客户端与所述游戏服务端之间发生断线重连之前存入所述本地数组的至少一个socket消息;

数组解锁单元,用于在所述游戏客户端与所述游戏服务端之间重新处于连接状态下,若监控到所述游戏客户端的游戏界面重新打开,对所述本地数组解锁;

消息处理触发单元,用于向所述本地数组中存入第二socket消息,触发对从所述本地数组中取出所述第一socket消息和所述第二socket消息进行处理的事件执行。

9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-7中任一项所述的消息锁处理方法。

10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-7中任一项所述的消息锁处理方法。