一种客户端事件和服务器事件的交互处理系统及方法与流程

文档序号:13075663阅读:133来源:国知局
一种客户端事件和服务器事件的交互处理系统及方法与流程

本发明涉及数据处理技术领域,特别是涉及一种客户端事件和服务器事件的交互处理系统及方法。



背景技术:

客户端事件类型有很多种,例如设备的屏幕,接收到触摸的动作时,屏幕驱动把压力信号(包括压力大小,压力位置等)传递给系统底层,然后操作系统经过一系列的处理,把触摸事件一层一层的向上传递,最终事件会被准确的传递到产生事件的对象上,系统会遍历每一个view对象,然后计算触摸点在哪一个view中。现有技术的客户端事件处理机制没有对事件进行分类处理,因此处理速度慢、处理效率也不高。



技术实现要素:

本发明提供一种客户端事件和服务器事件的交互处理系统及方法,解决了现有技术的客户端事件处理速度慢、效率低的技术问题。

本发明解决上述技术问题的技术方案如下:一种客户端事件和服务器事件的交互处理系统,包括:连接服务器、消息服务器和应用服务器,所述连接服务器包括客户端事件收发模块、缓存引擎和会话控制模型;

所述客户端事件收发模块,用于接收客户端发送的客户端事件,若所述客户端事件为远程调用类事件,则判断所述连接服务器是否有所述客户端事件对应的远程调用类事件处理器,若无,则将所述客户端事件发送至所述消息服务器;

所述应用服务器,用于获取并处理所述消息服务器中所述客户端事件,生成并发送服务器事件至所述消息服务器;

所述缓存引擎,用于获取并处理所述消息服务器中所述服务器事件,得到并发送服务器事件处理结果列表至所述会话控制模型;

所述会话控制模型,用于接收并处理所述服务器事件处理结果列表,得到并发送第一处理结果至与所述会话控制模型对应的客户端。

本发明的有益效果是:在接收到客户端事件后,根据客户端事件类型,如果是远程调用类事件且连接服务器中没有处理该远程调用类事件的处理器,则将该客户端事件发送至消息服务器,应用服务器监听并获取该客户端事件,处理得到处理结果,并根据该处理结果生成一个服务器事件,同时将该服务器事件再次发送至消息服务器,由连接服务器中缓存引擎监听该消息服务器,获取并处理上述服务器事件,再由每个客户端对应的会话控制模型处理缓存引擎得到处理结果列表,每个会话控制模型将最终的处理结果发送至其对应的客户端。本发明通过判断客户端事件的类别,对应执行不同的处理方式,同时,每个客户端对应的会话控制模型处理得到最终结果并发送至客户端,极大地提高了客户端事件的处理速度和质量。

在上述技术方案的基础上,本发明还可以做如下改进。

进一步,所述连接服务器还包括注册模块和会话控制模型创建模块;

所述注册模块,用于在接收到客户端发送的注册类事件信息后,调用登陆处理方法处理所述注册类事件信息,得到并向客户端返回登陆处理结果;

所述会话控制模型创建模块,用于在客户端登陆成功后,创建所述会话控制模型,所述会话控制模型包括视图数据模型,其中,一个客户端对应一个会话控制模型。

进一步,所述缓存引擎还用于:发送所述服务器事件至所述会话控制模型;

则所述会话控制模型用于:

接收并处理所述服务器事件,得到并发送第二处理结果至与所述会话控制模型对应的客户端。

进一步,所述缓存引擎包括缓存类事件处理器;

则所述缓存引擎在监听所述消息服务器,并获取和处理所述服务器事件时,具体包括:

监听所述消息服务器,获取所述服务器事件;根据所述服务器事件,循环取得其对应的缓存类事件处理器列表;所述缓存类事件处理器列表中的缓存类事件处理器分别处理所述服务器事件,得到服务器事件处理结果列表;发送所述服务器事件处理结果列表至所述会话控制模型。

进一步,所述缓存引擎还包括直接事件处理器;

所述会话控制模型,还用于在客户端登陆后,从所述缓存引擎中拷贝所述直接事件处理器。

本发明还提供了一种客户端事件和服务器事件的交互处理方法,包括:

步骤1、连接服务器的客户端事件收发模块接收客户端发送的客户端事件,若所述客户端事件为远程调用类事件,则判断所述连接服务器是否有所述客户端事件对应的远程调用类事件处理器,若无,将所述客户端事件发送至消息服务器;

步骤2、应用服务器获取并处理所述消息服务器中的所述客户端事件,生成并发送服务器事件至所述消息服务器;

步骤3、缓存引擎获取并处理所述消息服务器中的所述服务器事件,得到并发送服务器事件处理结果列表至会话控制模型;

步骤4、所述会话控制模型接收并处理所述服务器事件处理结果列表,得到并发送第一处理结果至与所述会话控制模型对应的客户端。

本发明的有益效果是:在接收到客户端事件后,根据客户端事件类型,如果是远程调用类事件且连接服务器中没有处理该远程调用类事件的处理器,则将该客户端事件发送至消息服务器,应用服务器监听并获取该客户端事件,处理得到处理结果,并根据该处理结果生成一个服务器事件,同时将该服务器事件再次发送至消息服务器,由连接服务器中缓存引擎监听该消息服务器,获取并处理上述服务器事件,再有每个客户端对应的会话控制模型处理缓存引擎得到处理结果列表,每个会话控制模型将最终的处理结果发送至其对应的客户端。本发明通过判断客户端事件的类别,对应执行不同的处理方式,同时,每个客户端对应的会话控制模型处理得到最终结果并发送至对应的客户端,极大地提高了客户端事件的处理速度和质量。

进一步,在客户端事件收发模块接收客户端发送的客户端事件之前,所述方法还包括:

连接服务器的注册模块在接收到客户端发送的注册类事件后,调用登陆处理方法处理所述注册类事件,得到并向所述客户端返回登陆处理结果;连接服务器的会话控制模型创建模块在所述登陆处理结果为成功时,创建所述会话控制模型,所述会话控制模型包括视图数据模型,其中,一个客户端对应一个会话控制模型。

进一步,所述步骤3还包括:所述缓存引擎发送所述服务器事件至所述会话控制模型;

则所述步骤4还包括:

所述会话控制模型接收并处理所述服务器事件,得到并发送第二处理结果至与所述会话控制模型对应的客户端。

进一步,所述缓存引擎包括缓存类事件处理器,所述步骤3包括:

步骤3.1、所述缓存引擎监听消息服务器,获取服务器事件;

步骤3.2、根据所述服务器事件,循环取得其对应的缓存类事件处理器列表;

步骤3.3、所述缓存类事件处理器列表中的缓存类事件处理器分别处理所述服务器事件,得到服务器事件处理结果列表;

步骤3.4、发送所述服务器事件处理结果列表至所述会话控制模型。

进一步,所述缓存引擎还包括直接事件处理器;

在所述登陆处理结果为成功时,所述会话控制模型从所述缓存引擎中拷贝所述直接事件处理器。

附图说明

图1为本发明实施例一提供的一种客户端事件和服务器事件的交互处理系统的示意性结构图;

图2为本发明实施例二提供的一种客户端事件和服务器事件的交互处理系统的示意性结构图;

图3为本发明实施例三提供的一种客户端事件和服务器事件的交互处理方法的流程示意图;

图4为本发明实施例四提供的一种客户端事件和服务器事件的交互处理方法的流程示意图。

具体实施方式

以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。

实施例一

一种客户端事件和服务器事件的交互处理系统100,如图1所示,包括:连接服务器、消息服务器和应用服务器,连接服务器包括客户端事件收发模块、缓存引擎和会话控制模型,其中,

客户端事件收发模块,用于接收客户端发送的客户端事件,若客户端事件为远程调用类事件,则判断连接服务器是否有客户端事件对应的远程调用类事件处理器,若无,则将客户端事件发送至消息服务器;

应用服务器,用于获取并处理消息服务器中客户端事件,生成并发送服务器事件至消息服务器;

缓存引擎,用于获取并处理消息服务器中服务器事件,得到并发送服务器事件处理结果列表至会话控制模型;

会话控制模型,用于接收并处理服务器事件处理结果列表,得到并发送第一处理结果至与会话控制模型对应的客户端。

需要说明的是,会话控制模型中有多个独立的处理线程,部分独立处理线程用于对接收到的事件进行处理,部分独立处理线程用于向客户端发送处理结果。

实施例二:

可选地,作为本发明的一个实施例,如图2所示,系统100,包括:连接服务器、消息服务器和应用服务器,连接服务器包括注册模块、会话控制模型创建模块、客户端事件收发模块、缓存引擎和会话控制模型。

注册模块,用于在接收到客户端发送的注册类事件信息后,调用登陆处理方法处理注册类事件信息,得到并向客户端返回登陆处理结果。

会话控制模型创建模块,用于在客户端登陆成功后,创建会话控制模型,会话控制模型包括视图数据模型,其中,一个客户端对应一个会话控制模型。一个会话控制模型包括多个视图数据模型。

客户端事件收发模块,用于接收客户端发送的客户端事件,若客户端事件为远程调用类事件,则判断连接服务器是否有该客户端事件对应的远程调用类事件处理器,若无,则将该客户端事件发送至消息服务器。

应用服务器,用于获取并处理消息服务器中客户端事件,生成并发送服务器事件至消息服务器。

缓存引擎,用于获取并处理消息服务器中服务器事件,得到并发送服务器事件处理结果列表至会话控制模型,同时还发送上述服务器事件至会话控制模型。

会话控制模型,用于接收并处理服务器事件处理结果列表,得到并发送第一处理结果至与会话控制模型对应的客户端,还用于接收并处理服务器事件,得到并发送第二处理结果至与会话控制模型对应的客户端。

客户端a发送客户端事件,客户端事件收发模块接收该客户端事件,经应用服务器处理后得到服务器事件,缓存引擎监听并处理该服务器事件,得到服务器事件处理结果列表,每个会话控制模型处理服务器事件和服务器事件处理结果列表后,将处理结果向所有与该连接服务器连接的客户端(客户端a,......,客户端b)发送处理结果。

会话控制模型和客户端一一对应,因此,连接服务器内的会话控制模型的个数取决于客户端连接的个数。需要说明的是,会话控制模型中有多个独立的处理线程,部分独立处理线程用于对接收到的事件进行处理,部分独立处理线程用于向客户端发送处理结果。

会话控制模型接收并分别将服务器事件和服务器事件处理结果列表发送至所有的视图数据模型,所有的视图数据模型接收并处理服务器事件,得到第一处理结果,所有的视图数据模型接收并处理服务器事件处理结果列表,得到第二处理结果,分别将第一处理结果和第二处理结果发送至每个会话控制模型对应的客户端,其中,第一处理结果和第二处理结果分别为视图变更内容。

需要说明的是,上述视图变更内容为两次视图的差异部分,例如,a服务器事件由缓存引擎从消息服务器中监听并获取到,并由缓存引擎将其发送至会话控制模型,会话控制模型中的视图数据模型对该服务器事件进行处理,得到a结果,当a服务器事件由缓存引擎从消息服务器中再次监听并获取到,且会话控制模型再次接收到该服务器事件时,由视图数据模型进行处理,处理得到b结果,a结果和b结果之间的差异,即为视图变更内容,会话控制模型会将该变更内容封装为model消息,通过更新线程推送至客户端。

其中,缓存引擎包括缓存类事件处理器(简称,mr事件处理器),用于处理缓存相关的服务器事件,例如,处理从消息服务器中监听到的服务器事件,如视图更改请求事件。则缓存引擎在监听消息服务器,并获取和处理服务器事件时,具体包括:监听消息服务器,获取服务器事件;根据服务器事件,循环取得其对应的缓存类事件处理器列表;缓存类事件处理器列表中的缓存类事件处理器分别处理服务器事件,得到服务器事件处理结果列表;发送服务器事件处理结果列表至会话控制模型。

其中,缓存引擎中预设有服务器事件主题及其与缓存类事件处理器的对应关系,缓存引擎在获取到服务器事件后,会根据服务器事件的主题,一一找到该主题对应的缓存类事件处理器,得到缓存类事件处理器列表,该缓存类事件处理器列表中的缓存类事件处理器分别处理该服务器事件,因此,该服务器事件经各缓存类事件处理器处理后会得到一个服务器事件处理结果列表。

另外,连接服务器中的缓存引擎有1个,缓存引擎还包括直接事件处理器(简称,d事件处理器),在客户端登陆后,会话控制模型从缓存引擎中拷贝直接事件处理器,直接事件处理器用于处理非缓存相关的服务器事件,例如,处理客户端直接发送过来的事件,如点击进入页面按钮、滑屏等。

一个会话控制模型包括多个直接事件处理器,会话控制模型会将服务器事件和服务器事件处理结果列表发送至所有的直接事件处理器,直接事件处理器用于接收并处理上述服务器事件和上述服务器事件处理结果列表,得到并发送处理结果至会话控制模型对应的客户端。

需要说明的是,连接服务器中的缓存引擎有1个,在连接服务器启动的时候,缓存引擎会注册直接事件处理器,且直接事件处理器仅在缓存引擎中注册,会话控制模型会在客户端登陆后,从缓存引擎中拷贝该直接事件处理器,上述直接事件处理器只有在会话控制模型中进行事件的处理。

实施例三:

本发明实施例还提供一种客户端事件和服务器事件的交互处理方法200,如图3所示,包括:

步骤210、客户端事件收发模块接收客户端发送的客户端事件,若客户端事件为远程调用类事件,则判断连接服务器是否有该客户端事件对应的远程调用类事件处理器,若无,将该客户端事件发送至消息服务器。

步骤220、应用服务器获取并处理消息服务器中上述客户端事件,生成并发送服务器事件至消息服务器。

步骤230、缓存引擎获取并处理消息服务器中上述服务器事件,得到并发送服务器事件处理结果列表至会话控制模型。

步骤240、会话控制模型接收并处理服务器事件处理结果列表,得到并发送第一处理结果至与会话控制模型对应的客户端。

其中,在客户端事件收发模块接收客户端发送的客户端事件之前,还包括:

注册模块在接收到客户端发送的注册类事件后,调用登陆处理方法处理注册类事件,得到并向客户端返回登陆处理结果,会话控制模型创建模块在登陆处理结果为成功时,创建会话控制模型,会话控制模型包括视图数据模型,其中,一个客户端对应一个会话控制模型。

需要说明的是,会话控制模型中有多个独立的处理线程,部分独立处理线程用于对接收到的事件进行处理,部分独立处理线程用于向客户端发送处理结果。

实施例四

优选的,作为本发明的另一实施例,如图4所示,方法200包括:

步骤210、客户端事件收发模块接收客户端发送的客户端事件,若客户端事件为远程调用类事件,则判断连接服务器是否有该客户端事件对应的远程调用类事件处理器,若无,将该客户端事件发送至消息服务器。

步骤220、应用服务器获取并处理消息服务器中上述客户端事件,生成并发送服务器事件至消息服务器。

步骤230、缓存引擎获取并处理消息服务器中上述服务器事件,得到并发送服务器事件处理结果列表至会话控制模型。

步骤240、会话控制模型接收并处理服务器事件处理结果列表,得到并发送第一处理结果至与会话控制模型对应的客户端。

其中,步骤230具体包括:

步骤231、缓存引擎监听消息服务器,获取服务器事件;

步骤232、根据服务器事件,循环取得其对应的缓存类事件处理器列表;

步骤233、缓存类事件处理器列表中的缓存类事件处理器分别处理服务器事件,得到服务器事件处理结果列表;

步骤234、发送服务器事件处理结果列表至会话控制模型。

另外,步骤230还包括:

步骤235、缓存引擎发送服务器事件至会话控制模型。

则步骤240还包括:

会话控制模型接收并处理服务器事件,得到并发送第二处理结果至与会话控制模型对应的客户端。

缓存引擎还包括直接事件处理器,在登陆处理结果为成功时,会话控制模型从缓存引擎中拷贝直接事件处理器。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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