The invention discloses a message lock processing method and a device, which comprises: monitoring whether a broken line reconnection occurs between the game client and the game server; if so, locking the local array of the game client triggers an event interruption to extract the first socket message from the local array, and The first socket message is at least one socket message stored in the local array before a disconnection and reconnection occurs between the game client and the game server; if the game interface of the game client is monitored, the game client is reconnected between the game client and the game server. The local array is reopened, unlocked, and a second socket message is stored in the local array, triggering the execution of an event that processes the first socket message and the second socket message taken out of the local array. Thus, the invention solves the technical problem that the game process is stuck after the interruption of the existing technology is reconnected.
【技术实现步骤摘要】
一种消息锁处理方法及装置
本专利技术涉及数据传输领域,尤其涉及一种消息锁处理方法及装置。
技术介绍
Android设备与服务端的通信方式主要有两种,一种是HTTP通信,另一种是socket(套接字)通信。两者的最大差异在于,HTTP连接使用的是“请求—响应方式”,即在请求时建立连接通道,当客户端向服务端发送请求后,服务端才能向客户端返回数据。而socket通信则是在双方建立起连接后就可以直接进行数据的传输,在连接时可实现信息的主动推送,而不需要每次由客户端向服务端发送请求。在程序内部提供了与外界通信的端口,即端口通信。通过建立socket连接,可为通信双方的数据传输传提供通道。socket通信有数据丢失率低,使用简单且易于移植的优点。在游戏领域,游戏客户端会因为断网等原因发生与游戏服务端之间的断线重连、游戏界面也会在断线重连成功后重新打开,而游戏界面的重新打开需要耗费一定时间,在游戏界面未重新打开之前,游戏服务端可能会下发新的socket消息,触发游戏客户端从本地数组中取出socket消息进行处理,从而,由于游戏界面还未打开,当前处理的socket消息会被浪费掉,而游戏过程中的socket消息是一环扣一环的,进而导致后续的socket消息也无法被处理,进而导致游戏过程卡住。
技术实现思路
本专利技术实施例通过提供一种消息锁处理方法及装置,解决了断线重连后游戏过程卡住的技术问题。第一方面,本专利技术实施例提供一种消息锁处理方法,应用于游戏客户端,其特征在于,包括:监控所述游戏客户端与游戏服务端之间是否发生断线重连;如果是,对所述游戏客户端的本地数组加锁,触发从所 ...
【技术保护点】
1.一种消息锁处理方法,应用于游戏客户端,其特征在于,包括:监控所述游戏客户端与游戏服务端之间是否发生断线重连;如果是,对所述游戏客户端的本地数组加锁,触发从所述本地数组中取出第一套接字socket消息的事件中断,其中,所述第一socket消息为在所述游戏客户端与所述游戏服务端之间发生断线重连之前存入所述本地数组的至少一个socket消息;在所述游戏客户端与所述游戏服务端之间重新处于连接状态下,若监控到所述游戏客户端的游戏界面重新打开,对所述本地数组解锁;向所述本地数组中存入第二socket消息,触发对从所述本地数组中取出所述第一socket消息和所述第二socket消息进行处理的事件执行。
【技术特征摘要】
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消息进行处理的事件执行,包括:等待所...
【专利技术属性】
技术研发人员:孟志兵,张文明,陈少杰,
申请(专利权)人:武汉斗鱼网络科技有限公司,
类型:发明
国别省市:湖北,42
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。