掌桥专利:专业的专利平台
掌桥专利
首页

应用于交互场景的消息传输处理方法、系统、设备及介质

文献发布时间:2024-04-18 19:52:40


应用于交互场景的消息传输处理方法、系统、设备及介质

技术领域

本发明涉及计算机及网络信息处理技术领域,具体涉及一种应用于交互场景的消息传输处理方法、系统、设备及介质。

背景技术

元宇宙是一种集合了信息技术、通信技术、AR、VR等虚拟技术的开放与共享的线上平台,其是一个巨大的、正在发展的虚拟宇宙,越来越多的人将会进入元宇宙生活。元宇宙的应用场景多种多样,如游戏、社交或虚拟办公等等,影响人们对各种各样元宇宙应用场景体验的共同因素之一是场景中的交互体验,而交互时产生的数据的时效性是影响交互体验的一个重要因素。举例来说,用户A通过化身(Avatar)处于元宇宙中的一个场景,当其向同一场景中的另外几个用户化身展示了一个动作时,该动作数据应该及时而准确地被传送到其他用户化身,使其他几个用户看到从其位置应该看到的用户A化身的动作。同理,用户A应能够及时地接收到其他几个用户化身对该动作的反馈。然而,由于交互时会产生大量的异构数据,如视频、音频、文字、交互状态等,不但数据量大,而且数据结构、类型不同,因此常规的数据传输方法很难保证数据传输的时效性,进而影响用户在元宇宙里的体验。

发明内容

有鉴于此,本发明实施例提供一种应用于交互场景的消息传输处理方法、系统、终端设备、服务器、计算机可读存储介质及计算机程序产品,至少用于解决元宇宙交互场景中消息传输时的时效性问题。

本发明实施例提供了一种应用于交互场景的消息传输处理方法,应用于服务端,用于在发送端和接收端之间传输交互消息,所述方法包括:

在接收到发送端的第一数据包时,识别出发送所述第一数据包使用的第一传输协议;

按照与所述第一传输协议对应的解析方式从所述第一数据包中解析出发送端发送的第一消息内容;

根据所述第一消息内容的资源类型确定与其对应的业务处理线程,并将所述第一消息内容路由到所述业务处理线程,经所述业务处理线程处理得到传输内容,所述传输内容至少包括应发送给接收端的第二消息内容;

基于传输内容确定第二传输协议,按照第二传输协议的处理方式对所述第二消息内容进行处理;以及

组装第二数据包,其中所述第二数据包至少包括处理后的第二消息内容及所述第二传输协议标识,并将第二数据包发送给接收端;

其中,所述第一传输协议和第二传输协议提供的处理方式分别与场景和交互消息内容的数据类型相对应。

可选地,所述第一/二数据包包括协议标识字段,基于所述第一数据包中的协议标识字段内容识别所述第一传输协议;在组装至第二数据包时,将所述第二传输协议标识填加在协议标识字段。

可选地,其中每种资源类型对应一个业务处理线程。

可选地,根据所述第一消息内容确定与其对应的业务处理线程的步骤包括:

查询解析出的所述第一消息内容及发送端的用户数据以获得路由标识,其中所述路由标识对应于一种或多种资源类型标识;

对所述路由标识进行哈希计算得到路由哈希值;

基于所述路由哈希值和业务处理线程数量进行取模运算得到第一值;以及

匹配与所述第一值一致的业务处理线程标识。

可选地,所述路由标识包括用户标识、场景标识和业务标识中的一种或多种标识的组合。

本发明实施例提供了一种应用于交互场景的消息传输处理方法,应用于用户终端中的客户端,所述客户端作为发送端时,所述方法包括:

基于用户发出的第一消息内容的数据类型及场景确定第一传输协议;

按照第一传输协议的处理方式对所述第一消息内容进行处理;以及

将处理后的第一消息内容及所述第一传输协议标识组装至第一数据包,并发送给服务端;

所述客户端作为接收端时,所述方法包括:

接收到服务端发送的第二数据包时,从中识别出第二传输协议;以及

按照与所述第二传输协议对应的解析方式从所述第二数据包中解析出服务端发送的第二消信息内容,所述第二消信息内容为服务端对发送端发送的第一消息内容经业务处理后的消息内容;

其中,所述第一传输协议和第二传输协议提供的处理方式分别与场景和交互消息内容的数据类型相对应。

本发明实施例还提供了一种应用于交互场景的消息传输处理系统,其应用于服务端,用于在发送端和接收端之间传输交互消息,所述系统包括服务端通信模块、包解析模块、路由模块、包数据处理模块和包组装模块,其中,所述服务端通信模块与发送端和接收端通信,经配置以接收发送端发送的第一数据包,并向接收端发送第二数据包;所述包解析模块与所述服务端通信模块相连接,经配置以从发送端发送的第一数据包中识别出第一传输协议,按照与所述第一传输协议对应的解析方式从所述第一数据包中解析发送端发送的第一消息内容;所述路由模块与所述包解析模块相连接,经配置以根据所述第一消息内容的资源类型确定与其对应的业务处理线程,并将所述第一消息内容路由到所述业务处理线程,经所述业务处理线程处理得到传输内容,所述传输内容至少包括应发送给接收端的第二消息内容;所述包数据处理模块经配置以基于传输内容确定第二传输协议,按照第二传输协议的处理方式对所述第二消息内容进行处理;所述包组装模块与所述包数据处理模块和服务端通信模块相连接,经配置组装第二数据包,其中包括处理后的第二消息内容及所述第二传输协议标识,并将所述第二数据包经所述服务端通信模块发送给接收端;其中,所述第一传输协议和第二传输协议提供的处理方式分别与场景和交互消息内容的数据类型相对应。

本发明实施例提供了一种服务器,包括处理器以及存储有计算机程序指令的存储器;所述处理器执行所述计算机程序指令时实现前述的应用于交互场景的消息传输处理方法。

本发明实施例提供了一种终端设备,包括处理器以及存储有计算机程序指令的存储器;所述处理器执行所述计算机程序指令时实现前述的应用于交互场景的消息传输处理方法。

本发明实施例提供了一种计算机可读存储介质所述计算机存储介质上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现前述应用于服务器或应用于终端设备的应用于交互场景的消息传输处理方法。

一种计算机程序产品,其包括计算机程序指令,所述计算机程序指令被处理器执行时实现前述应用于服务器或应用于终端设备的应用于交互场景的消息传输处理方法。

本发明通过为用户化身相互交互时的异构数据配置对应的传输协议,有效地提高了元宇宙交互场景中不同数据类型的消息在传输时的时效性。

附图说明

为了更清楚地说明本发明实施例的技术方案,以下对本发明实施例中的附图作简单介绍。

图1是本发明实施例的基于服务器和终端设备的AR系统架构示意图。

图2是一种利用手机端APP进行AR导航的虚实融合图像示意图。

图3是本发明实施例应用于客户端的消息传输处理方法流程图。

图4是本发明实施例应用于服务端的消息传输处理方法流程图。

图5是本发明实施例消息传输整体系统的结构原理示意图。

图6是本发明实施例路由模块的原理结构框图。

图7是本发明实施例根据业务处理的资源种类将不同客户端的数据转发给相应业务处理线程的流程示意图。

图8是本发明实施例服务端框架结构示意图。

图9是用来实现本发明实施例消息传输处理方法的电子设备的示意图。

图10是本发明实施例的一种示例性终端设备的软件结构示意图。

具体实施方式

以下将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,提供这些实施方式的目的是为了使本发明的原理和精神更加清楚和透彻,使本领域技术人员能够更好地理解进而实现本发明的原理和精神。本文中提供的示例性实施方式仅是本发明的一部分实施方式,而不是全部的实施方式。基于本文中的实施方式,本领域普通技术人员在不付出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。

本领域技术人员知晓,本发明的实施方式可以实现为一种系统、装置、设备、方法、计算机可读存储介质或计算机程序产品。因此,本发明可以具体实现为以下至少一种形式:完全的硬件、完全的软件,或者硬件与软件结合的形式。根据本发明的具体实施方式,本发明请求保护一种应用于交互场景的消息传输处理方法、系统、终端设备、服务器、计算机可读存储介质及计算机程序产品。

在本文中,诸如第一、第二、第三之类的用语,仅用来将一个实体(或操作)与另一个实体(或操作)区分开来,而不在于要求或暗示这些实体(或操作)之间存在任何顺序或关联。

本发明的实施例可应用于服务器和终端设备。请参考图1,示意性地示出了一种基于服务器和终端设备的AR系统架构示意图。AR系统架构包括服务器1000和若干终端设备2000。在一些示例中,终端设备2000为AR设备,其可以为专用的AR设备,例如头戴式AR设备(Head-mounted displays,HMD)、智能手套、服饰等智能可穿戴电子设备。在一些示例中,终端设备2000可为通用的AR设备,例如手机、便携式计算机、笔记本电脑、平板电脑、虚拟现实(Virtual Reality,VR)设备、车载设备、导航设备、游戏设备等等。

以AR头盔或AR眼镜为例,可将头戴式显示器、机器视觉系统、移动计算机等集成,设置在可绑定佩戴的设备中,该设备具有外形类似眼镜的显示器,工作时佩戴在使用者头部,该设备能将增强现实类信息传输至显示器上或投射至使用者的眼球中,从而增强用户的视觉沉浸感。在一些示例中,AR设备还具有摄像头,可为广角摄像头、长焦摄像头,还可为结构光摄像头(也称点云深度摄像头、3D结构光摄像头或深度摄像头)。其中结构光摄像头基于3D视觉技术,可获取物体的平面和深度信息。结构光摄像头可通过近红外激光器将具有一定结构特征的光线投射到被拍摄物体上,再由红外摄像头采集反射光,由处理器芯片处理,其计算原理是根据物体导致的光信号的变化计算物体位置和深度信息,呈现3D图像。通常的终端设备例如手机上呈现二维图像,并不能显示图像上不同位置的深度,利用结构光摄像头可拍摄获取3D图像信息数据,即不仅可获得图像中不同位置的颜色等信息,还可获得不同位置的深度信息,可用于AR测距。当然,普通的终端设备也可以基于光学摄像头采集2D图像并结合深度学习算法等方式获取2D图像的深度信息,最终也可呈现3D图像。

在一些示例中,终端设备2000中安装有具备AR功能的软件或应用程序APP。服务器1000可以是该软件或APP的管理服务器或应用服务器。服务器1000可以为一台服务器,也可以为多台服务器组成的服务器集群,也可以为云服务器或称云端服务器等。终端设备2000中集成有具备联网功能的模块,例如无线保真(Wireless-FIDelity,Wifi)模块、蓝牙模块、2G/3G/4G/5G通信模块等,以便通过网络连接到服务器1000。

示例性地,用户可通过安装在手机中的APP登录用户账号,用户还可通过安装在AR眼镜中的软件登录用户账号。

以具备AR导航功能的APP为例,APP可以具备例如高精地图导航能力、环境理解能力和虚实融合渲染能力等,APP可通过终端设备2000向服务器1000上报当前地理位置信息,服务器1000基于实时地理位置信息为用户提供AR导航服务。示例性地,以终端设备2000是手机为例,响应于用户启动APP的操作,手机可启动摄像头采集现实环境的图像,然后通过系统对摄像头采集的现实环境图像进行AR增强,在现实环境图像中融入或叠加渲染的AR效果(例如导航路线标识、道路名称、商户信息、广告展示等),将虚实融合的图像展示在手机屏幕上。

图2示意性地示出了一种利用手机端APP进行AR导航的虚实融合图像,其中AR导航的指示箭头叠加在图中真实的路面上及空间中,商户促销的电子资源以降落伞携带礼盒的形式漂浮在空间中的指定位置。

本发明的实施例涉及终端设备和服务器,用户使用终端设备以化身进入元宇宙中,本发明为了解决多个用户化身交互时消息传输的时效性而提供了一种消息传输处理方法和系统,其中涉及安装在用户终端设备中的客户端及安装在服务器中的服务端,通过客户端与服务端的配合处理实现及时传输用户化身之间的交互消息,所述的消息可以以文字、语音、视频或标识符等承载用户化身之间交互时的聊天消息、动作或表情等等。以下将通过若干示例性实施例或代表性实施方式对本发明的原理和精神进行详细阐释。

参见图3,图3是本发明实施例应用于客户端的消息传输处理方法流程图,在本实施例中,为了区别一个客户端发出的消息和接收的消息,将发出的消息称为第一消息,将发出消息的客户端称为发送端,将接收的消息称为第二消息,将接收消息的客户端称为接收端,应用在客户端的消息传输处理方法包括以下步骤:

步骤S101,基于用户发出的第一消息内容的数据类型及场景确定用于传输的第一传输协议。

步骤S102,按照第一传输协议的处理方式对所述第一消息内容进行处理。

步骤S103,将处理后的第一消息内容及所述第一传输协议标识组装至第一数据包,并发送给服务端。

步骤S104,监测是否接收到服务端发送的第二数据包,如果接收到,则执行步骤S105,如果没有,则继续监测。

步骤S105,从所述第二数据包中识别出第二传输协议。

步骤S106,按照与所述第二传输协议对应的解析方式从所述第二数据包中解析出服务端发送的第二消息内容。

其中,本发明中的第一数据包和第二数据包的数据部分包括多个顺次排列的字段,每个字段具有特定的含义。其中,表1为一个实施例中的数据包中的各个字段及其含义。客户端与服务端约定采用相同的数据包格式传输交互消息。

表1

在数据包的格式中,第三个字段表示当前数据包使用的传输协议,在一个实施例中,该字段内容为传输协议标识,如协议编号。不同编号的传输协议对应于不同的交互消息内容的数据类型及场景。所述数据类型例如为文本、图片、音频、视频、代表动作的动作标识、场景标识等的字符串。所述的场景例如当前应用定义的各种场景,通常由应用的业务逻辑来确定,如小范围聊天场景、游戏对战场景等等。本发明不同的传输协议定义了其传输的交互消息内容的数据类型及对交互消息内容传输时采用的形式,如是否需要编码,在需要编码时采用的编码格式,从而来适应3D场景中各种异构数据的高效传输。例如,在元宇宙中的一个小范围聊天场景,用户化身A发出的聊天消息为语音信息,客户端A使用适用“小范围”场景、传输音频数据的、编号为001的传输协议对该条交互消息的语音数据进行音频编码处理,采用小压缩比进行音频编码,并确定消息类型为语音消息,该协议定义的处理方式还包括按照消息类型和编码后的聊天消息的排序确定包数据,再发送到服务端,由服务端转发给其他用户的客户端,从而使当前场景的其他化身能够及时听到该条语音信息。如果当前场景为一个大范围演唱或讲演等场景时,为了将演唱者或讲演者发出的语音尽快传送到场景中的其他用户化身,客户端A使用适用“大范围”场景、传输音频数据、编号为002的传输协议对该条交互消息的语音数据采用大压缩比进行音频编码并发送到服务端,再由服务端发送给当前场景中的其他用户化身。虽然都是传输语音信息,但由于场景不同,采用的是不同的协议。又例如,仍然以小范围聊天场景为例,当用户化身A向其他用户化身做出一个动作时,客户端A使用适用于“小范围”场景传输动作标识的传输协议100对该条交互消息进行编码并发送到服务端,经由服务端业务系统处理后,分别得到每一个其他用户化身应看到动作,再转发给其他用户的客户端,使每一个其他用户化身在其当前位置看到用户化身A做出的动作。虽然传送动作的实施例和前述传送语音信息的例子的场景都是小范围场景,但是传输消息的数据类型不同,因而采用不同的协议。

在一个实施例中,当用户化身向其他用户化身发出文字聊天消息时,客户端在步骤S101根据第一消息内容的数据类型及场景确定应使用处理“聊天”场景中文本数据的第一传输协议。如编号为1001的文本消息传输协议。而后在步骤S102,按照第一传输协议的处理方式对所述第一消息内容处理,所述的处理包括编码方式和数据包中应组装的内容及组装的顺序,如对聊天文本数据进行编码,组装数据包时应包括消息数据类型和编码后的文本数据。组装第一数据包的步骤具体包括:首先按照数据包的格式确定各个字段对应的内容,再将字段内容填加到相应字段中。例如,在“协议编号”字段中填加“1001”;由于该消息为用户化身主动发出的消息,因而包类型为请求型,在“包类型”字段中填加“0”;当该消息是用户化身发出的第一个消息时,在“消息ID”中填加“0”,用于标识该用户化身发出的消息序号;当该用户化身已经接收到服务端推送了3条消息时,在“推送ID”字段中填加“2”,用于标识服务端上一次向其推送的消息序号;将文本类型和编码后的第一消息内容增加在“协议体”字段中,当全部字段已组装完后计算包总长度,并增加到“包总长度”字段中,从而完成数据包的组装。

当客户端监测到接收到来自服务端的数据后,在步骤S105从接收的第二数据包中的“协议标识”字段识别出该数据包采用的第二传输协议,当确定了传输协议后,在步骤S106按照与所述第二传输协议对应的解析方式从所述第二数据包中解析出服务端发送的第二消息内容。而后将所述第二消息内容转发给客户端的业务处理模块进行相应的处理,如直接发送到界面显示文字聊天内容、通过音频输出接口播放语音内容,通过动作处理模块按照一定的计算、渲染得到发送该动作的用户化身的动作,并增强显示用户化身做出相应的动作等等。

参见图4,图4是应用于服务端的消息传输处理方法流程图,服务端用于在发送端和接收端之间传输交互消息,在本实施例中,所述消息传输处理方法包括以下步骤:

S201,在接收到发送端的第一数据包时,识别出发送所述第一数据包使用的第一传输协议。

S202,按照与所述第一传输协议对应的解析方式从所述第一数据包中解析出发送端发送的第一消息内容。

S203,根据所述第一消息内容的资源类型确定与其对应的业务处理线程,并将所述第一消息内容路由到所述业务处理线程。

S204,接收经所述业务处理线程处理得到的传输内容,所述传输内容至少包括应发送给接收端的第二消息内容。

S205,基于传输内容确定第二传输协议,按照第二传输协议的处理方式对所述第二消息内容进行处理。

S206,组装第二数据包,并发送给接收端。

服务端在接收到发送端的第一数据包时,从接收的第一数据包的“协议标识”字段识别出该第一数据包采用的传输协议,当确定了传输协议后,在步骤S202按照与所述第一传输协议对应的解析方式对所述第一数据包中“协议体”字段的内容进行处理,从而得到发送端发送的第一消息内容。例如,当从“协议标识”中读取到的内容为“001”时,可以知道从“协议体”字段中读出的内容分别是当前消息的消息类型和经过音频编码后的聊天消息,此时可查询得到该传输协议对应的解码音频编码数据所需的参数,按照解码参数对音频编码数据进行解码,从而得到了发送端发送的语音内容。

为了提高服务端数据的处理效率,解决消息高并发带来的时延、阻塞等问题,服务端的业务处理系统在处理客户端的交互消息时,采用单线程处理方式,即同一类型的资源由同一个线程进行处理。其中的资源类型可由用户标识、具体的场景标识、具体的业务标识等一个或多个因素确定,并将这些标识作为一种资源类型标识。例如,当仅以用户标识作为资源类型时,一个线程处理一个用户的所有数据;当仅以具体场景标识作为资源类型时,一个线程处理一个指定场景的所有数据,所述场景例如游戏对战、直播、元宇宙中的一个应用活动,如某个景点中的“放孔明灯”活动、图书馆的“读书会”活动等等。业务例如为用户化身动作、用户化身发出的语音、文字、图片、视频等等。当然,也可以将这三种因素组合在一起构成更加细化的资源类型,如一个场景中的一种业务作为一个资源类型,由一个单独的线程处理;一个场景中的一个用户化身作为一个资源类型,由一个单独的线程处理,等等。通过指定某个资源只能由某线程处理保证了单个资源不存在多线程竞争的情况,因而在处理过程中不再需要对资源进行加锁、解锁处理,从而提高了业务处理效率,进而也减少了对该交互消息传输的延迟。业务处理系统中的每个业务处理线程具有唯一的标识,在一个实施例中,以基于资源类型标识计算得到的哈希值与业务处理线程数量进行取模运算得到的值作为业务处理线程标识,并记录在业务处理线程标识列表中。

为了将客户端的数据转发给对应的业务处理线程,服务端设置有数据路由策略,所述路由策略是指为涉及不同类型资源的消息确定处理与其匹配的业务处理线程时的处理方式及相关参数,相关参数包括预置的多种路由标识(或者资源类型标识)、哈希计算方法、哈希值的位数等等,处理方式例如为了获得能与业务处理线程标识进行匹配的第一值的计算方法等。其中的路由标识与资源类型标识一一对应。如将单独的用户标识、场景标识、业务标识等作为一个路由标识,或者将用户标识、场景标识、业务标识中的两个或三个任意组合起来作为路由标识等。服务端在步骤S203确定对应的业务处理线程时,在一个实施例中,查询第一数据包的协议体内容及发送所述第一数据包的用户数据以获得路由标识数据,如用户标识、代表场景的场景标识、代表业务的业务标识;然后按照哈希计算方法对所述路由标识进行哈希计算得到预定位数的路由哈希值。所述的哈希计算方法例如将路由标识按照某个哈希算法进行计算得到路由哈希值,哈希算法例如MD4、MD5、SHA-1等等。而后再获得业务处理线程数量,基于路由哈希值和业务处理线程数量进行取模计算得到一个数值,在本发明中称为第一值,从业务处理线程标识列表中匹配与其一致的业务处理线程的标识。

当确定了业务处理线程后,基于交互消息包含的资源类型及场景确定合适的转发方式,至少将交互消息内容转发给所述业务处理线程。其中的转发方式例如同步调用、异步调用、事件通知等方式。

业务处理线程对该条交互消息按照相应的业务要求、业务逻辑处理完后得到传输内容,传输内容至少包括应发送给接收端的第二消息内容。在另一些实施例中还包括接收端标识、包类型或消息类型等等参数。在本实施例中,当服务端接收到的是如图3所示实施例的中一个用户化身向其他用户化身发出文字聊天消息的数据包时,业务处理线程根据业务逻辑确定向组内的多个用户化身推送所述聊天消息内容,并得到需要接收消息的用户化身标识,将接收消息的用户化身标识(或接收端标识)和聊天消息内容作为传输内容,当然也可以包括包类型为“推送”,或者还包括“文本”消息类型。服务端根据业务处理线程处理得到的传输内容确定编号为1002的第二传输协议,并对聊天消息内容编码,将消息类型、编码后的聊天消息内容和发送端标识序列化后的数据作为协议体字段内容,同时组装第二数据包的其他字段,例如将“1002”填加到“协议编号”字段;在“包类型”字段中填到“2”;计算包总长度并填加到“包总长度”字段。其中“包类型”可以由业务处理线程给出,也可以由传输协议定义的内容来确定,或根据多个接收端标识确定“包类型”为推送型。而后在步骤S206将所述第二数据包发送给业务处理线程确定的接收消息的用户,即接收端。

为了高效传输交互消息所涉及的各种异构数据,本发明针对交互消息的数据类型、场景等因素自定义了多个传输协议。每个传输协议采用与数据类型、场景对应的编/解码格式对其传输的交互消息进行编/解码,使编码格式或压缩率与场景相应用,从而能够适应不同场景交互消息的时效性。

需要说明的是,对于本发明的各个实施例,为描述清楚,均表述为一系列的动作或处理的组合。本领域技术人员应该知悉,其实现过程不受所描述的动作或处理的顺序限制,本发明实施例中的某些步骤可以采用其他顺序处理或者同时进行处理。

本发明还提供了一种应用于交互场景的消息传输处理系统。图5示出了本发明实施例的消息传输整体系统的结构原理示意图,其中包括用户端和服务端,用户端包括多个客户端100,其分别位于用户端终上。客户端通过网络和服务端通信。服务端包括位于网络层的消息传输处理系统200和位于数据控制层的业务处理系统300。消息传输处理系统200为发送端和接收端之间传输交互消息。所述的发送端和接收端分别是指发出消息和接收消息的客户端。由于客户端之间发出的交互消息通常包括业务数据,因而消息传输处理系统200在传输交互消息时,还需要经过业务处理系统300的业务处理。业务处理系统300与本实施例中的消息传输处理系统200相连接,针对消息传输处理系统200接收到的来自客户端的消息进行相应业务处理,再将经过业务处理后的数据内容发送给消息传输处理系统200,由消息传输处理系统200发送给客户端。具体地,参见图5,所述消息传输处理系统200包括服务端通信模块201、包解析模块202、路由模块203、包数据处理模块204和包组装模块205,所述服务端通信模块201通过网络与客户端100通信,用以接收作为发送端的客户端100发送的第一数据包,并向其他作为接收端的一个或多个客户端100发送第二数据包。所述包解析模块202与所述服务端通信模块201相连接,从第一数据包中识别出第一传输协议,按照与所述第一传输协议对应的解析方式从所述第一数据包中解析发送端发送的第一消息内容。所述路由模块203用以根据所述第一消息内容的资源类型确定与其对应的业务处理线程,并将所述第一消息内容路由到业务处理系统300中的业务处理线程;经所述业务处理线程处理得到传输内容,所述传输内容至少包括应发送给接收端的第二消息内容。所述包数据处理模块204接收业务处理系统300中的业务处理线程处理完得到的传输内容,基于传输内容确定第二传输协议,按照第二传输协议对传输内容中的所述第二消息内容进行处理,如按照相应的编码算法及编码参数对所述第二消息内容进行编码、确定消息类型等处理。所述包组装模块205与所述包数据处理模块204和所述服务端通信模块201相连接,用以组装第二数据包,例如确定第二数据包中各个字段的内容,如表1中的各个字段内容,并经所述服务端通信模块201以推送的方式发送给作为接收端的其他多个客户端100。

其中,为了高效处理各种业务数据,本发明中的业务处理系统300为每一种类型资源的处理分配一个线程,对资源类型标识进行哈希计算后得到的哈希值作为业务处理线程标识,并记录在业务处理线程标识列表中。对应地,消息传输处理系统200中的所述路由模块203的原理图如图6所示。路由模块203包括哈希计算单元2031、匹配单元2032和转发单元2033,其中,所述哈希计算单元2031查询解析出的第一消息内容及发送端的用户数据以获得路由标识,所述路由标识与一种或多种资源类型标识相对应,并对所述路由标识进行哈希计算得到路由哈希值。所述匹配单元2032与所述哈希计算单元2031相连接,基于所述路由哈希值和业务处理线程数量进行取模运算得到第一值,基于计算得到的第一值查询业务处理线程标识列表,匹配与其一致的业务处理线程标识。所述转发单元2033与所述匹配单元2032相连接,将解析出的第一消息内容以同步调用、异步调整或事件通知的方式转发给对应的业务处理线程。其中,业务处理线程数量及业务处理线程标识列表可从业务处理系统300中得到。

如图7所示,图7为根据业务处理的资源种类将不同客户端的数据转发给相应业务处理线程的流程示意图。客户端发送的消息中涉及一定类型的资源,该类型资源在经过包解析模块202的解析后得到。如图7中所示,三个客户发送来的消息中包括资源A和资源B,按照路由策略确定与对应的业务处理流程,然后将包括资源A的消息转发至对应的资源A处理线程,再将包括资源B的消息转发至对应的资源B处理线程,并以资源请求的方式存放到对应业务处理线程的消息盒子中。业务处理线程基于对应的资源依次处理消息盒子中的每个资源请求。

在数据处理过程中常常存在多线程环境下对同一份资源进行读写操作的情况,为了保证数据的一致性,在常规处理方式中,通过加锁(包括乐观锁和悲观锁)的方式保证资源在同一时间只能由一个线程处理,但这种处理方式会对系统性能造成较大影响。而在本实施例中,每种资源由一个单线程处理,即指定某个资源只能由某线程处理。以此种方式保证每个资源不存在多线程竞争的情况,也就无需对资源进行加锁、解锁,从而提高了数据处理效率。

图8是根据本发明一个实施例的服务端框架结构示意图,在本实施例中,服务端框架结构中的客户端Session管理器负责保持与客户端的通信,并保存当前会话的用户数据,如用户ID、接收的消息ID、向其推送的消息ID等等,即起到通信模块的作用。接收到客户端数据包后,客户端Session管理器将其发送给编解码模块,编解码模块包括两个部分,一部分用于对客户端数据包进行解析,从中识别出客户端使用的传输协议及传输参数(如包类型、消息ID等),按照所述传输协议从第一数据包的协议体字段中解析出数据包中的发送端发送的交互消息内容,并将协议体内容中可能包括的用户ID、传输参数中的消息ID等信息发送给客户端Session管理器,同时将解析出的交互消息内容及用户数据等发送给一致性哈希路由单元,一致性哈希路由单元给实例Session管理器从注册中心获得业务处理线程的数量及标识列表,基于交互消息内容中对应资源类型标识的路由标识进行哈希计算、取模计算,并匹配得到对应的业务处理线程,并通知转发单元。转发单元基于交互消息内容中包含的资源类型及场景确定合适的转发方式,如同步调用、异步调用或以事件通知的方式,至少将交互消息内容及确定的业务处理线程标识转发到实例Session管理器。其中,业务处理系统包括多个业务处理线程,每个业务处理线程对应一个实例,用于处理一种资源,如图8中的实例A、实例B和实例C分别处理三种不同类型的资源。每个实例在创建后在注册中心进行注册,如注册地址信息、实例名称等,注册中心将每个实例的注册信息发送给实例Session管理器。实例Session管理器在接收到转发单元转发来的交互消息内容及确定的业务处理线程标识后,基于业务处理流程对应的实例地址信息,将交互消息内容等发送给业务集群中的对应实例,如实例A或实例B等等。经过实例的处理后,将处理完的数据返回给实例Session管理器,实例Session管理器再返回给编解码模块,编解码模块基于返回的数据确定应使用的传输协议,而后按照传输协议对需要发送给接收端的消息内容进行编码等处理,再确定其他协议体内容,并对这些数据序列后填加到协议体字段中,同时组装数据包的其他字段,在数据包组装完成后经客户端Session管理器发送给接收端。

本实施例将用户化身的交互消息由网关层路由到处理实例上,处理实例的处理结果也由网关层转发回客户端。服务端提供多个对不同资源进行处理的业务处理实例,并且处理实例之间采用直连方式,无需通过网关,因而节约了网络开销,并进一步提交了交互消息的传输。

本领域技术人员应理解,本文中所描述的实施例属于优选实施例,所涉及的动作、步骤、模块或单元等并不一定是本发明实施例所必须的。在上述实施例中,本发明实施例对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

图9是用来实现本发明实施例消息传输处理方法的电子设备的结构示意图。电子设备10包括处理器11、存储器12以及用于连接处理器11和存储器12的通信总线,其中在存储器12中存储有可以在处理器11上运行的计算机程序,处理器11运行该计算机程序时可执行或称实现本发明中各个实施例的方法中的步骤。电子设备10可以是本发明实施例中的服务器,电子设备10也可以是云端服务器。电子设备10也可以是本发明实施例中的终端设备或AR设备。在合适的情况下电子设备也可称为计算设备.电子设备10也可以是云端服务器。电子设备10还包括通信接口,用于接收和发送数据。

在一些实施例中,处理器11可以是中央处理器(Central Processing Unit,CPU)、图形处理器(Graphics Processing Unit,简称GPU)、应用处理器(ApplicationProcessor,简称AP)、调制解调处理器、图像信号处理器(Image Dignal Processor,简称ISP)、控制器、视频编解码器、数字信号处理器(Digital Signal Processor,简称DSP)、基带处理器、神经网络处理器(Neural-network Processing Unit,简称NPU)等;处理器11还可以是其他通用处理器、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或其他可编程逻辑器件、分立门或晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器,也可以是任何常规的处理器等。其中,神经网络处理器NPU通过借鉴生物神经网络结构,可对输入信息快速处理,还可以不断进行自我学习。通过NPU电子设备可以实现智能认知等应用,例如图像识别、人脸识别、语义识别、语音识别、文本理解等。

在一些实施例中,存储器12可以是电子设备10的内部存储单元,例如电子设备10的硬盘或内存;存储器12也可以是电子设备10的外部存储设备,例如电子设备10上配备的插接式硬盘、智能存储卡(Smart Media Card,简称SMC)、安全数字(Secure Digital,简称SD)卡、闪存卡(Flash Card)等。存储器12还可以既包括电子设备10的内部存储单元也包括外部存储设备。存储器12可用于存储操作系统、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,例如计算机程序的程序代码等。存储器12包括但不限于是随机存储记忆体(Random Access Memory,简称RAM)、只读存储器(Read-only Memory,简称ROM)、可擦除可编程只读存储器(Erasable Programmable Read Only Memory,简称EPROM)或便携式只读存储器(Compact Disc Read-only Memory,简称CD-ROM)。存储器12用于存储电子设备10所执行的程序代码和所传输的数据。存储器12还可以用于暂时地存储已经输出或者将要输出的数据。

本领域技术人员可以理解,图9仅是电子设备10的举例,并不构成对电子设备10的限定,电子设备10可以包括比图示更多或更少的部件,或者组合某些部件,或者包括不同的部件,例如还可以包括输入输出设备、网络接入设备等。

图10是本发明实施例的终端设备的软件结构示意图。以手机操作系统为AndroID系统为例,在一些实施例中,将AndroID系统分为四层,分别为:应用程序层、应用程序框架层(Framework,简称FWK)、系统层以及硬件抽象层,层与层之间通过软件接口通信。

首先,应用程序层可以包括多个应用程序包,应用程序包可以是例如通话、相机、视频、导航、天气、即时通讯、教育等各种应用程序APP,也可以是基于AR技术的应用程序APP。

第二,应用程序框架层FWK为应用程序层的应用程序提供应用编程接口(Application Programming Interface,API)和编程框架。应用程序框架层可以包括一些预先定义的函数,例如用于接收应用程序框架层所发送的事件的函数。

应用程序框架层可以包括窗口管理器、资源管理器以及通知管理器等。

其中,窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。

其中,资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。

其中,通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。

此外,应用程序框架层还可以包括视图系统,视图系统包括可视控件,例如显示文字的控件、显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的,例如短信通知图标的显示界面上可以包括显示文字的视图以及显示图片的视图。

第三,系统层可以包括多个功能模块,例如传感器服务模块、物理状态识别模块、三维图形处理库(例如:OpenGLES),等等。

其中,传感器服务模块用于对硬件层各类传感器上传的传感器数据进行监测,确定手机的物理状态;物理状态识别模块用于对用户手势、人脸等进行分析和识别;三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。

此外,系统层还可以包括表面管理器和媒体库。表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。

最后,硬件抽象层是硬件和软件之间的层。硬件抽象层可以包括显示驱动、摄像头驱动、传感器驱动等,用于驱动硬件层的相关硬件,如显示屏、摄像头、传感器等。

本发明实施例还提供了一种计算机可读存储介质,其存储有计算机程序或指令,该计算机程序或指令被执行时以实现上述实施例中所涉及的应用于服务器或应用于终端设备的应用于交互场景的消息传输处理方法。

本发明实施例还提供一种计算机程序产品,包括计算机程序或指令,该计算机程序或指令被执行时以实现上述实施例中所涉及的应用于服务器或应用于终端设备的应用于交互场景的消息传输处理方法。示例性的,该计算机程序产品可以为一个软件安装包。

本领域技术人员应该知悉,本发明实施例所描述的方法、步骤或者相关模块/单元的功能可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式来实现,也可以是由处理器执行计算机程序指令的方式来实现。其中,该计算机程序产品包括至少一个计算机程序指令,计算机程序指令可以由相应的软件模块组成,软件模块可以被存放于RAM、闪存、ROM、EPROM、EEPROM、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。该计算机程序指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输。例如,该计算机程序指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质、或者半导体介质(如SSD)等。

关于上述实施例中描述的各个装置/产品,其中包含的模块/单元可以是软件模块/单元,也可以是硬件模块/单元,还可以部分是软件模块/单元,部分是硬件模块/单元。例如,对于应用或集成于芯片的装置/产品,其包含的各个模块/单元可以都用电路等硬件的方式实现,或者,至少部分模块/单元采用软件程序的方式实现,运行于芯片内部集成的处理器,剩余的部分模块/单元采用电路等硬件方式实现。又如,对于应用或集成于终端的装置/产品,其包含的各个模块/单元可以都采用电路等硬件的方式实现,或者,至少部分模块/单元采用软件程序的方式实现,运行于终端内部集成的处理器,剩余部分模块/单元可以采用电路等硬件方式实现。

以上所述,仅为本发明的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。

相关技术
  • 应用场景的交互处理方法、装置及终端、系统、存储介质
  • 获取系统消息的异常处理方法、用户设备及存储介质
  • OAM消息传输方法、传输设备及存储介质
  • 基于消息队列的请求处理方法、装置、设备及存储介质
  • 一种消息处理方法、装置、电子设备及存储介质
  • 虚拟场景处理方法、装置、交互系统、头戴显示装置、视觉交互装置及计算机可读介质
  • 多消息交互场景下的系统测试方法、装置和存储介质
技术分类

06120116329613