一种游戏服务器的热更新方法及装置与流程

文档序号:12119973阅读:503来源:国知局
一种游戏服务器的热更新方法及装置与流程

本发明实施例涉及数据更新技术,尤其涉及一种游戏服务器的热更新方法及装置。



背景技术:

随着网络游戏的迅速发展,用户对游戏的质量要求越来越高,使得游戏开发者必须快速反馈用户的需求,并及时对游戏服务器进行更新。

目前,对游戏服务器的热更新一般采用通过Modules动态卸载和加载javascript文件的方法,替换正在运行中的javascript程序。但是上述游戏服务器的热更新方案,不能对有新状态信息的服务器进行热更新,不能实现游戏数据内容的同步继承。



技术实现要素:

本发明提供一种游戏服务器的热更新方法及装置,以实现在服务器热更新过程中游戏数据状态的继承同步。

第一方面,本发明实施例提供了一种游戏服务器热更新方法,该方法包括:

当检测到热更新开始时,调用父进程发送热更新开始信息至第一子进程,其中,所述第一子进程用于在所述热更新开始前接收和处理所述父进程转发的客户端信息,以及在接收到所述热更新开始信息后将玩家状态信息发送至所述父进程;

调用所述父进程建立第二子进程,并将来自所述第一子进程的玩家状态信息转发至所述第二子进程;

当检测到所述热更新结束时,调用所述父进程关闭所述第一子进程,将所述热更新过程中接收的客户端信息发送至所述第二子进程,使得所述第二子进程根据所述玩家状态信息接收和处理所述热更新过程中接收的客户端信息。

进一步的,所述调用父进程将来自所述第一子进程的玩家状态信息转发至所述第二子进程包括:

调用所述父进程接收所述第一子进程发送的序列化的玩家状态信息,控制所述第一子进程暂停帧,并将所述序列化的玩家状态信息发送至所述第二子进程,使得所述第二子进程将所述序列化的玩家状态信息进行反序列化处理。

进一步的,当检测到所述热更新结束时,调用所述父进程关闭所述第一子进程,将所述热更新过程中接收的客户端信息发送至所述第二子进程,使得所述第二子进程接收和处理所述热更新过程中接收的客户端信息,包括:

当检测到所述热更新结束时,调用所述父进程执行如下操作:

关闭所述第一子进程;

获取所述热更新过程中接收的客户端信息,将所述热更新过程中接收的客户端信息缓存至缓存序列;

将所述缓存序列中的所述热更新过程中接收的客户端信息发送至所述第二子进程,使得所述第二子进程接收和处理所述热更新过程中接收的客户端信息。

进一步的,在所述热更新结束后,所述方法还包括:

调用所述父进程获取新的客户端信息,将所述新的客户端信息发送至所述第二子进程,使得所述第二子进程接收和处理所述新的客户端信息。

进一步的,所述父进程与第一子进程之间、所述父进程与第二子进程之间均通过IPC通道进行通信。

第二方面,本发明实施例还提供了一种游戏服务器热更新装置,该装置包括:

热更新开始信息发送模块,用于当检测到热更新开始时,调用父进程发送热更新开始信息至第一子进程,其中,所述第一子进程用于在所述热更新开始前接收和处理所述父进程转发的客户端信息,以及在接收到所述热更新开始信息后将玩家状态信息发送至所述父进程;

子进程建立模块,用于调用父进程建立第二子进程,并将来自所述第一子进程的玩家状态信息转发至所述第二子进程;

第一客户端信息处理模块,用于当检测到所述热更新结束时,调用所述父进程关闭所述第一子进程,将所述热更新过程中接收的客户端信息发送至所述第二子进程,使得所述第二子进程根据所述玩家状态信息接收和处理所述热更新过程中接收的客户端信息。

进一步的,所述子进程建立模块包括:

子进程建立单元,用于调用所述父进程建立第二子进程;

玩家状态信息初始化单元,用于调用所述父进程接收所述第一子进程发送的序列化的玩家状态信息,控制所述第一子进程暂停帧,并将所述序列化的玩家状态信息发送至所述第二子进程,使得所述第二子进程将所述序列化的玩家状态信息进行反序列化处理。

进一步的,所述第一客户端信息处理模块包括:

子进程关闭单元,用于当检测到所述热更新结束时,调用所述父进程关闭所述第一子进程;

客户端信息缓存单元,用于调用所述父进程获取所述热更新过程中接收的客户端信息,将所述热更新过程中接收的客户端信息缓存至缓存序列;

客户端信息发送单元,用于调用所述父进程将所述缓存序列中的所述热更新过程中接收的客户端信息发送至所述第二子进程,使得所述第二子进程接收和处理所述热更新过程中接收的客户端信息。

进一步的,所述装置还包括:

第二客户端信息处理模块,用于在所述热更新结束后,调用所述父进程获取新的客户端信息,将所述新的客户端信息发送至所述第二子进程,使得所述第二子进程接收和处理所述新的客户端信息。

进一步的,所述父进程与第一子进程之间、所述父进程与第二子进程之间均通过IPC通道进行通信。

本发明实施例通过在游戏服务器热更新过程中调用父进程将第一子进程发送的玩家状态信息转发至第二子进程,并在游戏服务器热更新结束后将游戏服务器热更新过程中接收的客户端信息转发至第二子进程进行处理,解决了现有技术游戏服务器热更新时不能实现游戏数据内容的同步继承的问题,实现了游戏数据状态的同步继承。

附图说明

图1是本发明实施例一提供的游戏服务器热更新方法的流程图;

图2是本发明实施例二提供的游戏服务器热更新方法的流程图;

图3是本发明实施例三提供的游戏服务器热更新方法的流程图;

图4是本发明实施例四提供的游戏服务器热更新装置的结构示意图.

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

实施例一

图1为本发明实施例一提供的游戏服务器热更新方法的流程图,本实施例可适用于在服务器进行热更新时,实现状态继承的情况,该方法可以由本发明实施例提供的游戏服务器热更新装置来执行,该装置可以采用硬件和/或软件的方式实现,该装置可集成于游戏服务器中,该方法具体包括:

S110、当检测到热更新开始时,调用父进程发送热更新开始信息至第一子进程,其中,第一子进程用于在热更新开始前接收和处理父进程转发的客户端信息,以及在接收到热更新开始信息后将玩家状态信息发送至父进程。

其中,游戏服务器热更新指的是更新游戏内容或者修复游戏漏洞等,进程指的是计算机程序中关于数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础,父进程指的是创建了一个或多个子进程的进程,子进程由父进程创建,继承父进程的大部分属性。

本实施例中,当游戏正常运行时,服务器调用父进程创建第一子进程,父进程接收玩家客户端发送的客户端信息,示例性的,客户端信息可以是玩家应用金币购买装备或者玩家进入第一副本等。父进程将接收的客户端信息转发至第一子进程,第一子进程根据客户端信息中的指令进程处理。

当游戏服务器开始进行热更新时,父进程向第一子进程发送热更新开始信息,第一子进程根据该热更新开始信息将当前游戏玩家状态信息发送至父进程,其中当前玩家状态信息可以包括玩家ID(Identity,身份标识符号)、玩家等级、玩家当前位置等。

S120、调用父进程建立第二子进程,并将来自第一子进程的玩家状态信息转发至第二子进程。

其中,当游戏服务器开始热更新时,服务器调用父进程建立第二子进程,并将接收到的第一子进程发送的玩家状态信息发送至第二子进程。

父进程将玩家状态信息转发至第二子进程,由第二子进程继续存储玩家状态信息,保证了玩家状态信息在游戏服务器热更新过程中实现同步继承。

S130、当检测到热更新结束时,调用父进程关闭第一子进程,将热更新过程中接收的客户端信息发送至第二子进程,使得第二子进程根据玩家状态信息接收和处理热更新过程中接收的客户端信息。

在游戏服务器热更新过程中,玩家客户端不间断地向游戏服务器发送客户端信息,父进程接收玩家客户端发送的信息,并暂停向第一子进程转发该客户端信息。

当游戏服务器热更新结束时,父进程根据热更新结束信息关闭第一子进程。父进程将在游戏服务器热更新过程中接收的客户端信息发送至第二子进程,第二子进程接收并处理热更新过程中接收的客户端信息,保证玩家客户端在游戏服务器更新过程中不掉线。

本实施例的技术方案,通过在游戏服务器热更新过程中调用父进程将第一子进程发送的玩家状态信息转发至第二子进程,并在游戏服务器热更新结束后将游戏服务器热更新过程中接收的客户端信息转发至第二子进程进行处理,解决了现有技术游戏服务器热更新时不能实现游戏数据内容的同步继承的问题,实现了游戏数据状态的同步继承。

在上述实施例的基础上,该方法还包括:

所述父进程与第一子进程之间、所述父进程与第二子进程之间均通过IPC通道进行通信。

其中,IPC(Inter-Process Communication,进程间通信)通道,是为了让进程间通信而开放的命名管道,传输速度快,IPC通道的传输速度是TCP(Transmission Control Protocol,传输控制协议)传输速度的两倍,父进程与第一子进程之间、父进程与第二子进程之间均通过IPC通道进行通信提高热更新速率。

实施例二

图2是本发明实施例二提供的游戏服务器热更新方法的流程图,在上述实施例一的基础上,进一步的将调用父进程将来自第一子进程的玩家状态信息转发至第二子进程优化为:调用父进程接收第一子进程发送的序列化的玩家状态信息,控制第一子进程暂停帧,并将序列化的玩家状态信息发送至第二子进程,使得第二子进程将序列化的玩家状态信息进行反序列化处理。相应的,该方法具体包括:

S210、当检测到热更新开始时,调用父进程发送热更新开始信息至第一子进程,其中,第一子进程用于在热更新开始前接收和处理父进程转发的客户端信息,以及在接收到热更新开始信息后将玩家状态信息发送至父进程。

S220、调用父进程接收第一子进程发送的序列化的玩家状态信息,控制第一子进程暂停帧;

本实施例中,当第一子进程接收父进程发送的游戏服务器热更新开始信息时,将玩家状态信息序列化,形成玩家状态信息列表,并将玩家状态信息列表发送至父进程。同时,父进程控制第一子进程暂停游戏。

S230、调用父进程建立第二子进程,将序列化的玩家状态信息发送至第二子进程,使得第二子进程将序列化的玩家状态信息进行反序列化处理。

其中,第二子进程接收父进程发送的玩家状态信息列表,将玩家状态信息列表进行反序列化处理,将玩家状态信息还原,完成玩家状态信息的初始化,第二子进程向父进程发送初始化完成信息。当玩家状态信息初始化完成后,第二子进程控制游戏继续进行,其中游戏暂停帧时间很短,示例性的,在游戏服务器热更新过程中,游戏暂停时间可以是几百毫秒、1秒或者2秒,不会导致玩家客户端掉线的情况,不需要玩家客户端重启服务器。

S240、当检测到热更新结束时,调用父进程关闭第一子进程,将热更新过程中接收的客户端信息发送至第二子进程,使得第二子进程根据玩家状态信息接收和处理热更新过程中接收的客户端信息。

本实施例的技术方案,通过在游戏服务器热更新过程中,调用父进程接收第一子进程发送的序列化的玩家状态信息,并将序列化的玩家状态信息转发至第二子进程,使得第二子进程将该序列化的玩家状态信息进行反序列化操作,还原玩家状态信息,实现了在游戏服务器热更新过程中的玩家状态信息的继承。

实施例三

图3是本发明实施例三提供的游戏服务器热更新方法的流程图,在上述实施例的基础上,进一步的将当检测到热更新结束时,调用父进程关闭第一子进程,将热更新过程中接收的客户端信息发送至第二子进程,使得第二子进程接收和处理热更新过程中接收的客户端信息优化为:当检测到热更新结束时,调用父进程执行如下操作:关闭第一子进程;获取热更新过程中接收的客户端信息,将热更新过程中接收的客户端信息缓存至缓存序列;将缓存序列中的热更新过程中接收的客户端信息发送至第二子进程,使得第二子进程接收和处理热更新过程中接收的客户端信息。相应的,该方法具体包括:

S310、当检测到热更新开始时,调用父进程发送热更新开始信息至第一子进程,其中,第一子进程用于在热更新开始前接收和处理父进程转发的客户端信息,以及在接收到热更新开始信息后将玩家状态信息发送至父进程。

S320、调用父进程建立第二子进程,并将来自第一子进程的玩家状态信息转发至第二子进程。

S330、当检测到热更新结束时,调用父进程关闭第一子进程;

示例性的,游戏服务器通过热更新提高游戏版本,第一子进程用于处理旧版本游戏过程信息,第二子进程用于处理新版本游戏过程信息,则当检测到游戏服务器热更新结束时,开始运行新版本游戏内容,关闭第一子进程。

S340、调用父进程获取热更新过程中接收的客户端信息,将热更新过程中接收的客户端信息缓存至缓存序列;

在游戏服务器热更新过程中,父进程接收玩家客户端不间断的发送的客户端信息,父进程接收玩家客户端发送的信息,并暂停向第一子进程转发该客户端信息。

父进程将在游戏服务器热更新过程中接收的客户端信息缓存至缓存队列中。

S350、调用父进程将缓存序列中的热更新过程中接收的客户端信息发送至第二子进程,使得第二子进程接收和处理热更新过程中接收的客户端信息。

第二子进程接收并处理父进程在游戏服务器热更新过程中接收的客户端信息,保证在游戏服务器热更新过程中玩家客户端不掉线。

本实施例的技术方案,通过调用父进程将游戏服务器热更新过程中接收的客户端信息缓存,并在热更新结束后将缓存的客户端信息发送至第二子进程,以使第二子进程处理热更新过程中的客户端信息,避免了在游戏服务器热更新时玩家客户端掉线的问题。

在上述实施例的基础上,在步骤S350之后,该方法还可以包括:

父进程获取新的客户端信息,将新的客户端信息发送至第二子进程,使得第二子进程接收和处理新的客户端信息。

当游戏服务器热更新结束后,服务器运行新版本游戏内容,父进程接收新的客户端信息,将接受的新的客户端信息转发至第二子进程,使得第二子进程根据新的客户端信息进行相应的处理。

实施例四

图4是本发明实施例四提供的游戏服务器热更新装置的结构示意图,该装置适用于执行本发明实施例提供的游戏服务器热更新方法,该装置具体可以包括:

热更新开始信息发送模块410,用于当检测到热更新开始时,调用父进程发送热更新开始信息至第一子进程,其中,第一子进程用于在热更新开始前接收和处理父进程转发的客户端信息,以及在接收到热更新开始信息后将玩家状态信息发送至父进程;

子进程建立模块420,用于调用父进程建立第二子进程,并将来自第一子进程的玩家状态信息转发至第二子进程;

第一客户端信息处理模块430,用于当检测到热更新结束时,调用父进程关闭第一子进程,将热更新过程中接收的客户端信息发送至第二子进程,使得第二子进程根据玩家状态信息接收和处理热更新过程中接收的客户端信息。

可选的,子进程建立模块420包括:

子进程建立单元,用于调用所述父进程建立第二子进程。

玩家状态信息初始化单元,用于调用父进程接收第一子进程发送的序列化的玩家状态信息,控制第一子进程暂停帧,并将序列化的玩家状态信息发送至第二子进程,使得第二子进程将序列化的玩家状态信息进行反序列化处理。

可选的,第一客户端信息处理模块430包括:

子进程关闭单元,用于当检测到热更新结束时,调用父进程关闭第一子进程;

客户端信息缓存单元,用于调用父进程获取热更新过程中接收的客户端信息,将热更新过程中接收的客户端信息缓存至缓存序列;

客户端信息发送单元,用于调用父进程将缓存序列中的热更新过程中接收的客户端信息发送至第二子进程,使得第二子进程接收和处理热更新过程中接收的客户端信息。

可选的,在热更新结束后,装置还包括:

第二客户端信息处理模块,用于在热更新结束后,调用父进程获取新的客户端信息,将新的客户端信息发送至第二子进程,使得第二子进程接收和处理新的客户端信息。

可选的,父进程与第一子进程之间、父进程与第二子进程之间均通过IPC通道进行通信。

本发明实施例提供的游戏热更新装置可执行本发明任意实施例所提供的游戏热更新方法,具备执行方法相应的功能模块和有益效果。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1