[发明专利]事件消息的处理方法、装置、电子设备及可读存储介质在审
申请号: | 202010140390.8 | 申请日: | 2020-03-03 |
公开(公告)号: | CN111282263A | 公开(公告)日: | 2020-06-16 |
发明(设计)人: | 陈生飞 | 申请(专利权)人: | 北京奇艺世纪科技有限公司 |
主分类号: | A63F13/358 | 分类号: | A63F13/358 |
代理公司: | 北京柏杉松知识产权代理事务所(普通合伙) 11413 | 代理人: | 李欣;马敬 |
地址: | 100080 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 事件 消息 处理 方法 装置 电子设备 可读 存储 介质 | ||
本发明实施例提供了一种事件消息的处理方法、装置、电子设备及可读存储介质,应用于游戏服务器,包括:在接收到的事件消息写入与游戏房间关联的消息队列中,并且从消息队列中读取最先写入的待处理事件消息,以及对待处理事件消息进行处理,得到待处理事件消息对应的响应消息,以及向属于游戏房间的游戏客户端发送响应消息。应用本发明实施例提供的技术方案,可以将属于一个游戏房间的多个游戏客户端发送的事件消息写入到针对该游戏房间预先创建的消息队列中,再对这些事件消息逐个进行处理,将处理后得到的响应消息发送到上述多个游戏客户端,驱动这多个游戏客户端更新游戏画面,取代了加锁和解锁的操作,从而降低了游戏的时延。
技术领域
本发明涉及产品应用技术领域,特别是涉及一种事件消息的处理方法、装置、电子设备及可读存储介质。
背景技术
对于多人实时互动游戏,游戏客户端发送一个交互指令,游戏服务器接收到该交互指令后,并对该交互指令进行响应处理,得到响应消息,将响应消息发送到客户端,以使客户端更新游戏画面。
当多个游戏客户端针对一份公共的数据同时发送多个交互指令时,通常对这份公共的数据加互斥锁从而避免冲突。例如,当游戏客户端A和游戏客户端B同时请求修改同一份公共的数据时,游戏客户端A修改时可以对这份公共的数据加互斥锁,阻止游戏客户端B修改,当游戏客户端A加的互斥锁解除后,游戏客户端B才能继续修改这份公共的数据。
但是,当同时修改这份公共的数据的游戏客户端数量较多时,处理过程中,需要多次执行加锁和解锁的操作,可能导致部分游戏客户端等待时间较长,影响游戏的时延等性能指标。
发明内容
本发明实施例的目的在于提供一种事件消息的处理方法、装置、电子设备及可读存储介质,用以解决多个游戏客户端同时发送事件消息时,响应时延大的问题。具体技术方案如下:
第一方面,本发明实施例提供了一种事件消息的处理方法,应用于游戏服务器,包括:
在接收到游戏客户端发送的事件消息后,将所述事件消息写入与所述游戏客户端所属游戏房间关联的消息队列中,所述事件消息为所述游戏客户端基于接收到的交互操作所生成的;
按照所述消息队列中包含的各事件消息的写入顺序,从所述消息队列中读取最先写入的事件消息,作为待处理事件消息;
对所述待处理事件消息进行处理,得到所述待处理事件消息对应的响应消息;
向属于所述游戏房间的游戏客户端发送所述响应消息。
进一步的,所述将所述事件消息写入与所述游戏客户端所属游戏房间关联的消息队列中,包括:
判断写指针在与所述游戏客户端所属游戏房间关联的消息队列中所指向的位置中是否存在未被读取的事件消息;
若不存在,将所述事件消息写入所述写指针指向的位置。
进一步的,在若不存在,将所述事件消息写入所述写指针指向的位置之后,所述方法还包括:
判断所述写指针指向的位置是否为所述消息队列的末位;
若是,将所述写指针指向的位置变更为所述消息队列的首位;
若否,将所述写指针指向的位置在所述消息队列中后移一位。
进一步的,所述按照所述消息队列中包含的各事件消息的写入顺序,从所述消息队列中读取最先写入的事件消息,作为待处理事件消息,包括:
判断读指针在所述消息队列中所指向的位置中是否存在未被读取的事件消息;
若存在未被读取的事件消息,读取所述读指针所指向的位置中的事件消息,作为待处理事件消息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇艺世纪科技有限公司,未经北京奇艺世纪科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010140390.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种物流用分拣装置
- 下一篇:一种锯丝的切割方法及旋转游离磨料锯丝线锯机床