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

用于实时课堂的事件分发方法及系统

文献发布时间:2023-06-19 11:08:20


用于实时课堂的事件分发方法及系统

技术领域

本发明涉及互联网技术领域,尤其涉及用于实时课堂的事件分发方法及系统。

背景技术

随着科技的发展,线上教育越来越普及,其中就包括实时课堂。对于实时课堂来说,对于事件同步性的要求较高,即要求事件发起者(特指老师)发送的事件能准确无误的到达对端(即事件接收方,特指学生)的设备,并能在对端准确渲染出和事件发起者一样的页面效果。一般来说,事件同步性主要通过事件对应的消息到达率和准确率来体现,因此,在实时课堂内如何提高事件对应消息的到达率和准确率是必须要解决的问题。

目前,主流的线上课堂内事件分发处理方案中,将事件对应的消息从事件发起者流转到事件接收方即算分发操作完成,但是这种分发处理方案会存在消息丢失或者消息到达对端的先后顺序不一致的情况,引起事件发起者发送的事件和事件接受者接收到的事件不一致,进而影响上课质量。

发明内容

本发明的目的在于提供用于实时课堂的事件分发方法及系统,通过提高事件的到达率,同时增加了事件的乱序处理机制,以实现实时课堂内所有终端设备的事件渲染保持一致,提高了用户体验。

为了实现上述目的,本发明提供如下技术方案:

一种用于实时课堂的事件分发方法,其特征在于,包括:

终端设备利用至少两个并行的消息通道分别获取服务器端发送的消息;

终端设备按照消息的到达顺序处理全部消息,或者仅处理顺序错乱的消息;

其中,所述消息是服务器端基于任一终端设备的用户触发的事件转换得到的,同一消息只在第一次到达终端设备时被处理。

优选地,服务器端获取任一终端设备的用户触发的事件并转换为消息,同时基于事件被触发的顺序对所述消息编号。

较佳地,终端设备利用至少两个并行的消息通道分别获取服务器端发送的消息的方法包括:

服务器端与任一终端设备之间预设至少两个消息通道;

服务器端将所述消息按照编号顺序组成消息队列;

服务器端调用至少两个消息通道将消息按照消息队列的顺序并行发送给终端设备,且每个通道用于发送全部消息至终端设备。

进一步地,所述消息通道的实现方法包括以下一项或多项:

基于MQTT实现所述消息通道;

基于IM服务器实现所述消息通道。

优选地,任一消息通道设有第一分支和第二分支,其中,

所述第一分支用于将消息存储到数据库中;

所述第二分支用于缓存消息快照以及将消息发送到终端设备中。

较佳地,所述终端设备包括事件发起终端,服务器端基于事件发起终端的用户触发的事件转换得到所述消息。

具体地,所述事件发起终端接收到服务器端发送的消息后,仅处理顺序错乱的消息。

进一步地,事件发起终端处理顺序错乱的消息的方法包括:

事件发起终端对触发的事件按序编码并存储到本地,并且事件的编码和事件对应的消息的编码一致;

事件发起终端接收服务器端发送的消息后,判断获取到的消息编码顺序与本地的事件编码顺序是否一致。

若一致,则事件发起终端不处理所述消息;

若不一致,则事件发起终端处理所述消息。

优选地,所述终端设备还包括事件接收终端,所述事件接收终端接收到服务器端发送的消息后,按照消息的到达顺序处理全部消息。

一种用于实时课堂的事件分发系统,其特征在于,包括终端设备和服务器,所述终端设备包括消息获取模块和消息处理模块,其中,

所述消息获取模块利用至少两个并行的消息通道分别获取服务器端发送的消息;其中,所述消息是服务器端基于任一终端设备的用户触发的事件转换得到的。

所述消息处理模块用于按照消息的到达顺序处理全部消息,或者仅处理顺序错乱的消息;其中,同一消息只在第一次到达终端设备时被处理。

与现有技术相比,本发明提供的用于卷管器的固定装置具有以下有益效果:

本发明提供的用于实时课堂的事件分发方法,通过多通道传输提高事件的到达率,并增加了事件的乱序处理机制,对事件的到达率和事件的发送顺序做了比较严格的管控,保证了事件发起者发送的事件和事件接受者接收到的事件的一致性,从而提高了实时课堂的事件同步性。

本发明提供的用于实时课堂的事件分发系统,提高了事件对应消息的到达率和准确率,实现了实时课堂内所有终端设备的事件渲染保持一致,保证了较高的实时课堂中事件的同步性,从而保证了良好的用户体验。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1为本发明实施例中用于实时课堂的事件分发方法执行过程示意图;

图2为本发明实施例中事件同步的技术示意图;

图3为本发明实施例中处理事件消息乱序的技术流程示意图。

图4为本发明实施例中判断事件消息乱序的技术实例图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其它实施例,均属于本发明保护的范围。

实施例一

请参阅图1,一种用于实时课堂的事件分发方法,包括:

终端设备利用至少两个并行的消息通道分别获取服务器端发送的消息;

终端设备按照消息的到达顺序处理全部消息,或者仅处理顺序错乱的消息;

其中,消息是服务器端基于任一终端设备的用户触发的事件转换得到的,同一消息只在第一次到达终端设备时被处理。

本发明提供的用于实时课堂的事件分发方法,通过多消息通道传输以提高事件的到达率,并增加了事件的乱序处理机制,对事件的到达率和事件的发送顺序做了严格的管控,保证了事件发起者发送的事件和事件接受者接收到的事件的一致性,从而提高了实时课堂的事件同步性。

服务器端获取任一终端设备的用户触发的事件并转换为消息,并基于事件被触发的顺序对消息进行编号。在本实施例中,终端设备可进一步分为事件发起终端和事件接收终端,任一终端设备均有可能作为事件发起终端,例如在线课堂场景中,用户为老师/学生的任一终端设备都可以作为事件发起终端,其他用户的终端设备作为事件接收终端。服务器端基于事件发起终端的用户触发的事件转换得到消息。

请参阅图2,终端设备利用至少两个并行的消息通道分别获取服务器端发送的消息,具体方法包括:

服务器端与任一终端设备之间预设至少两个消息通道,两个通道可以采用相同技术实现,也可以采用不同技术实现。例如,消息通道可以包括基于消息队列遥测传输协议(Message Queuing Telemetry Transport,MQTT)实现的消息通道和基于即时通讯服务器(Instant Messaging Server,IM Server)实现的消息通道中的一种或两种:其中,基于MQTT协议实现的消息通道是通过云服务传递的消息通道,MQTT协议中的服务质量等级机制(Quality of Service level,QOS)会保证消息的到达率,消息在此消息通道中可以通过分布式消息中间件(RocketMQ)对消息进行列队;基于IM服务器实现的消息通道是本实施例中自建的消息通道,消息在此消息通道中可以通过消息列队协议(AMQP)对消息进行列队;

然后服务器端将消息按照编号顺序组成消息队列;最后,服务器端调用至少两个消息通道将消息按照消息队列的顺序并行发送给终端设备,且每个通道用于发送全部消息至终端设备,即,每个消息通道的消息传送报文是相同的,都包括全量的消息。其中,任一消息通道设有第一分支和第二分支,其中第一分支用于将消息存储到数据库中;第二分支用于缓存消息快照至缓存库中,并将消息发送到终端设备中,即事件接收终端。其中,消息存储到数据库可以使用MongoDB来实现,缓存库可以使用Redis来实现,方便于页面快照、课堂视频回放等功能的实现。

由于存在网络环境等其他不可控的因素,事件发起终端发送消息后,基于单一消息通道的事件接收终端却没有收到消息,至少两个消息通道的设计有效的解决了使用单一消息通道时出现单点故障(single point of failure,SOLF)的问题,消息被分别投递到两个通道内,事件接收终端优先会处理最先到达的消息,第二到达的消息成为原消息的临时成备份消息,从而保证了接收端的事件到达率的提高。

事件接收终端接收到服务器端发送的消息后,按照消息的到达顺序处理全部消息。

请参阅图3,事件发起终端接在收到服务器端发送的消息后,仅处理顺序错乱的消息。其中,事件发起终端处理顺序错乱的消息的方法包括:

事件发起终端对触发的事件按序编码并存储到本地,并且事件的编码和事件对应的消息的编码一致;事件发起终端接收到服务器端发送的消息后,判断接收到的消息编码顺序与本地的事件编码顺序是否一致:若一致,则事件发起终端对该消息或消息队列不作处理;若不一致,则事件发起终端处理该消息或消息队列,以作出主动调整处理。

正常的情况下,触发事件对应的消息会被服务器按照图4中上部分支进行广播,消息通道中的消息传输是先入先出(FIFO)模式。然而在下部分支中,触发事件对应的消息在被服务器发出时可能会发生乱序的问题,这会导致事件接受收端收到的消息顺序和事件发起终端触发的事件顺序不一致,最终导致事件接收终端处理消息渲染得到的事件顺序与事件发起终端触发的事件顺序不一致。对于这种异常情况,本发明中的处理方法为控制事件发起终端处理乱序的消息重新渲染事件,使其与事件接受收端的渲染得到的事件顺序一致,即,尽管事件接收终端接收的消息是乱序的,事件发起终端将会主动调整事件使其同步于事件接收终端的事件。这种主动调整的具体方法是:事件发起终端判断接收到的消息编码顺序与本地的事件编码顺序是否一致,若顺序一致则不做任何的改动,若顺序不一致,事件发起终端则根据接收到的消息渲染事件,进而将调整当前事件使其与事件接收终端的当前事件对应一致,从而保证了所有终端实时渲染的事件都是一致的,也便于提醒事件发起终端的用户发生了消息乱序,从而做出进一步地调整。

请参阅图4下部分支中所示的例子,事件发起终端的用户依次触发事件A、事件B,此事件编码顺序存储到了本地,服务器端基于事件发起终端的用户触发的事件转换得到消息A、消息B,这些消息在传输时发生了乱序,导致事件接收终端接收的消息编码顺序依次为消息B、消息A,服务器端同时也会向事件发起终端发送消息B、消息A,事件发起终端判断出接收到的消息编码顺序与本地的事件编码顺序不一致,则事件发起终端依次根据消息B、消息A渲染得到事件B、事件A,事件渲染呈现给事件发起终端的用户的同时,提示该用户消息出现了乱序,该用户可根据需要再次触发事件。

本公开实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端设备,终端上安装有用于实时课堂的事件分发的客户端。

本发明中用于实时课堂的事件分发的方法可应用的场景包括但不仅限于线上课堂、线上会议,可将事件发起者(诸如老师或会议发言者)发送的事件准确无误的到达接收者(诸如学生或参会人员)的设备并能准确渲染出和事件发起者一样的页面效果,保证了良好的用户体验。

实施例二

一种用于实时课堂的事件分发系统,包括终端设备和服务器,终端设备包括消息获取模块和消息处理模块,其中,消息获取模块利用至少两个并行的消息通道分别获取服务器端发送的消息,消息是服务器端基于任一终端设备的用户触发的事件转换得到的;消息处理模块用于按照消息的到达顺序处理全部消息,或者仅处理顺序错乱的消息,同一消息只在第一次到达终端设备时被处理。

本发明提供的用于实时课堂的事件分发系统,采用上述实施例一中的用于实时课堂的事件分发方法,提高了事件对应消息的到达率和准确率,实现了实时课堂内所有终端设备的事件渲染保持一致,保证了较高的实时课堂中事件的同步性,从而保证了良好的用户体验。与现有技术相比,本发明实施例提供的用于实时课堂的事件分发系统的有益效果与上述实施例一提供的用于实时课堂的事件分发方法的有益效果相同,且用于实时课堂的事件分发系统的其他技术特征与上一实施例方法公开的特征相同,在此不做赘述。

在上述实施方式的描述中,具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

相关技术
  • 用于实时课堂的事件分发方法及系统
  • 一种课堂实时监测与评估系统及其工作方法、创建方法
技术分类

06120112811178