虚拟场景的事件处理方法、装置、电子设备及存储介质制造方法及图纸

技术编号:39188905 阅读:8 留言:0更新日期:2023-10-27 08:36
本申请提供了一种虚拟场景的事件处理方法、装置、电子设备、计算机可读存储介质及计算机程序产品;方法通过服务处理系统实现,服务处理系统包括:操作系统、基础模块和服务模块;方法包括:操作系统将虚拟场景中发生的事件发送至基础模块;基础模块调用服务模块包括的动态链接库,并向动态链接库发送事件;动态链接库将事件转换为统一的驱动消息,并向与事件的业务类型适配的编程语言对应的目标业务逻辑模块发送驱动消息;目标业务逻辑模块针对驱动消息进行处理,其中,实现目标业务逻辑模块的编程语言与实现动态链接库的编程语言之间支持互相调用。通过本申请,能够支持使用不同的编程语言实现不同的业务逻辑模块,提高了运行效率和开发效率。效率和开发效率。效率和开发效率。

【技术实现步骤摘要】
虚拟场景的事件处理方法、装置、电子设备及存储介质


[0001]本申请涉及互联网
,尤其涉及一种虚拟场景的事件处理方法、装置、电子设备及计算机可读存储介质。

技术介绍

[0002]以虚拟场景为游戏为例,一个游戏通常由各种不同的服务进程组成,多个服务进程之间互相配合,共同为玩家提供游戏服务。此外,游戏的服务进程一般包含多个业务逻辑模块,可以同时提供多种服务(例如玩家登录、添加好友、加入公会等)。然而,同一个服务进程一般只由特定的单一编程语言实现,即针对包含多个业务逻辑模块的服务进程来说,很难根据具体业务逻辑模块的需求场景,选择不同的编程语言来实现不同的业务逻辑模块。
[0003]也就是说,相关技术提供的方案中,针对编程语言有比较严格的要求,无法自由使用不同的编程语言来开发不同的业务逻辑模块,缺乏通用性,导致了游戏的开发效率和运行效率较低。

技术实现思路

[0004]本申请实施例提供一种虚拟场景的事件处理方法、装置、电子设备、计算机可读存储介质及计算机程序产品,能够支持使用不同的编程语言实现不同的业务逻辑模块,进而提高了运行效率和开发效率。
[0005]本申请实施例的技术方案是这样实现的:
[0006]本申请实施例提供一种虚拟场景的事件处理方法,所述方法通过服务处理系统实现,所述服务处理系统包括:操作系统、基础模块和服务模块,所述基础模块是将所述操作系统提供的多种功能进行组合封装得到的,所述服务模块包括基于不同的编程语言实现的多个业务逻辑模块;包括:
[0007]所述操作系统将所述虚拟场景中发生的事件发送至所述基础模块;
[0008]所述基础模块调用所述服务模块包括的动态链接库,并向所述动态链接库发送所述事件;
[0009]所述动态链接库将所述事件转换为统一的驱动消息,并向与所述事件的业务类型适配的编程语言对应的目标业务逻辑模块发送所述驱动消息;
[0010]所述目标业务逻辑模块针对所述驱动消息进行处理,其中,实现所述目标业务逻辑模块的编程语言与实现所述动态链接库的编程语言之间支持互相调用。
[0011]本申请实施例提供一种虚拟场景的事件处理装置,包括:操作系统、基础模块和服务模块,所述基础模块是将所述操作系统提供的多种功能进行组合封装得到的,所述服务模块包括基于多种编程语言实现的多个业务逻辑模块;
[0012]所述操作系统,用于向所述基础模块发送所述虚拟场景中发生的事件;
[0013]所述基础模块,用于调用所述服务模块包括的动态链接库,并向所述动态链接库发送所述事件;
[0014]所述动态链接库,用于将所述事件转换为统一的驱动消息,并向与所述事件的业务类型适配的编程语言对应的目标业务逻辑模块发送所述驱动消息;
[0015]所述目标业务逻辑模块,用于针对所述驱动消息进行处理,其中,实现所述目标业务逻辑模块的编辑语言与实现所述动态链接库的编程语言之间支持相互调用。
[0016]本申请实施例提供一种电子设备,包括:
[0017]存储器,用于存储可执行指令;
[0018]处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的虚拟场景的事件处理方法。
[0019]本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于被处理器执行时,实现本申请实施例提供的虚拟场景的事件处理方法。
[0020]本申请实施例提供一种计算机程序产品,包括计算机程序或指令,用于被处理器执行时,实现本申请实施例提供的虚拟场景的事件处理方法。
[0021]本申请实施例具有以下有益效果:
[0022]通过利用动态链接库的调用方式,将服务模块需要处理的事件通过动态链接库进行转接,由于动态链接库是一种编程语言无关的文件格式,因此对于服务模块中包括的业务逻辑模块来说,在实现上可以自由选择不同的编程语言,只要实现业务逻辑模块的编程语言与实现动态链接库的编程语言支持互相调用即可,从而能够支持使用不同的编程语言来实现不同的业务逻辑模块,充分发挥了不同编程语言在不同业务场景下的优势,提高了运行效率和开发效率。
附图说明
[0023]图1是本申请实施例提供的虚拟场景的事件处理系统100的架构示意图;
[0024]图2是本申请实施例提供的服务器200的结构示意图;
[0025]图3是本申请实施例提供的虚拟场景的事件处理方法的流程示意图;
[0026]图4A是本申请实施例提供的虚拟场景的事件处理方法的流程示意图;
[0027]图4B是本申请实施例提供的虚拟场景的事件处理方法的流程示意图;
[0028]图5是本申请实施例提供的服务处理系统的框架示意图;
[0029]图6是本申请实施例提供的基于动态链接库的事件处理流程示意图;
[0030]图7是本申请实施例提供的服务处理系统的结构示意图;
[0031]图8是本申请实施例提供的基于ECS框架处理驱动消息的原理示意图。
具体实施方式
[0032]为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
[0033]在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
[0034]可以理解的是,在本申请实施例中,涉及到用户的账号、拥有的虚拟资源等相关的
数据,当本申请实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
[0035]在以下的描述中,所涉及的术语“多个”是指至少两个。
[0036]除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的
的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
[0037]对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
[0038]1)动态链接库(DLL,Dynamic Link Library):是一个作为共享函数库的可执行文件,它使进程可以调用不属于本身可执行代码的函数。在Windows操作系统中,动态链接库一般是带有.dll扩展名的文件,也可以是.exe或者其他扩展名;在Linux操作系统中,动态链接库一般是后缀为.so的文件,它们向运行于Windows操作系统下的程序提供代码、数据或者函数。
[0039]2)进程(Process):是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。具体来说,进程是一个具有独立功能的程序关于某个本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种虚拟场景的事件处理方法,其特征在于,所述方法包括:所述方法通过服务处理系统实现,所述服务处理系统包括:操作系统、基础模块和服务模块,所述基础模块是将所述操作系统提供的多种功能进行组合封装得到的,所述服务模块包括基于不同的编程语言实现的多个业务逻辑模块;所述方法包括:所述操作系统将所述虚拟场景中发生的事件发送至所述基础模块;所述基础模块调用所述服务模块包括的动态链接库,并向所述动态链接库发送所述事件;所述动态链接库将所述事件转换为统一的驱动消息,并向与所述事件的业务类型适配的编程语言对应的目标业务逻辑模块发送所述驱动消息;所述目标业务逻辑模块针对所述驱动消息进行处理,其中,实现所述目标业务逻辑模块的编程语言与实现所述动态链接库的编程语言之间支持互相调用。2.根据权利要求1所述的方法,其特征在于,所述基础模块包括基础能力接口和服务能力接口;所述基础模块调用所述服务模块包括的动态链接库,并向所述动态链接库发送所述事件,包括:所述基础模块在运行时加载所述服务模块,并基于所述服务能力接口中声明的符号名称,调用所述服务模块包括的动态链接库、以及向所述动态链接库发送所述事件;所述方法还包括:所述服务模块调用所述基础能力接口使用所述操作系统提供的基础能力,其中,所述基础能力包括以下至少之一:发送网络数据包、获取时间、读写文件。3.根据权利要求1所述的方法,其特征在于,所述动态链接库的函数接口是定义在头文件中的,所述函数接口的类型包括:打开动态链接库的函数接口和获取动态链接库定义的符号的函数接口;所述基础模块调用所述服务模块包括的动态链接库,并向所述动态链接库发送所述事件,包括:所述基础模块基于所述打开动态链接库的函数接口和所述获取动态链接库定义的符号的函数接口,调用所述服务模块包括的动态链接库,并向所述动态链接库发送所述事件。4.根据权利要求3所述的方法,其特征在于,所述基础模块基于所述打开动态链接库的函数接口和所述获取动态链接库定义的符号的函数接口,调用所述服务模块包括的动态链接库,并向所述动态链接库发送所述事件,包括:所述基础模块检测所述服务模块的加载状态;所述基础模块响应于加载状态检测结果表征未加载所述服务模块,调用所述打开动态链接库的函数接口加载所述服务模块;所述基础模块响应于加载状态检测结果表征已经加载所述服务模块,检测所述事件对应的符号接口的获取状态;所述基础模块响应于获取状态检测结果表征未获取到所述事件对应的符号接口,根据服务功能接口中声明的符号名称,调用所述获取动态链接库定义的符号的函数接口,从所
述服务模块中获取与所述符号名称对应的符号接口;所述基础模块响应于获取状态检测结果表征已经获取到所述事件对应的符号接口,向所述符号接口发送所述事件,其中,所述符号接口是实现在所述服务模块包括的动态链接库中的。5.根据权利要求4所述的方法,其特征在于,所述动态链接库将所述事件转换为统一的驱动消息,并向与所述事件的业务类型适配的编程语言对应的目标业务逻辑模块发送所述驱动消息,包括:所述动态链接库基于所述符号接口将所述事件转换为统一的驱动消息,并向与所述事件的业务类型适配的编程语言对应的目标业务逻辑模块发送所述驱动消息;其...

【专利技术属性】
技术研发人员:李培元张振兴
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1