CN112860460B - 用于实时课堂的事件分发方法及系统 - Google Patents
用于实时课堂的事件分发方法及系统 Download PDFInfo
- Publication number
- CN112860460B CN112860460B CN202110203640.2A CN202110203640A CN112860460B CN 112860460 B CN112860460 B CN 112860460B CN 202110203640 A CN202110203640 A CN 202110203640A CN 112860460 B CN112860460 B CN 112860460B
- Authority
- CN
- China
- Prior art keywords
- message
- event
- messages
- terminal
- events
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开用于实时课堂的事件分发方法及系统,其中,该方法包括:终端设备利用至少两个并行的消息通道分别获取服务器端发送的消息;终端设备按照消息的到达顺序处理全部消息,或者仅处理顺序错乱的消息;其中,所述消息是服务器端基于任一终端设备的用户触发的事件转换得到的,同一消息只在第一次到达终端设备时被处理。该系统用于实现上述用于实时课堂的事件分发的方法,通过多通道传输提高事件的到达率,并增加了事件的乱序处理机制,对事件的到达率和事件的发送顺序做了严格的管控,保证了事件发起者发送的事件和事件接受者接收到的事件的一致性,提高了用户体验。
Description
技术领域
本发明涉及互联网技术领域,尤其涉及用于实时课堂的事件分发方法及系统。
背景技术
随着科技的发展,线上教育越来越普及,其中就包括实时课堂。对于实时课堂来说,对于事件同步性的要求较高,即要求事件发起者(特指老师)发送的事件能准确无误的到达对端(即事件接收方,特指学生)的设备,并能在对端准确渲染出和事件发起者一样的页面效果。一般来说,事件同步性主要通过事件对应的消息到达率和准确率来体现,因此,在实时课堂内如何提高事件对应消息的到达率和准确率是必须要解决的问题。
目前,主流的线上课堂内事件分发处理方案中,将事件对应的消息从事件发起者流转到事件接收方即算分发操作完成,但是这种分发处理方案会存在消息丢失或者消息到达对端的先后顺序不一致的情况,引起事件发起者发送的事件和事件接受者接收到的事件不一致,进而影响上课质量。
发明内容
本发明的目的在于提供用于实时课堂的事件分发方法及系统,通过提高事件的到达率,同时增加了事件的乱序处理机制,以实现实时课堂内所有终端设备的事件渲染保持一致,提高了用户体验。
为了实现上述目的,本发明提供如下技术方案:
一种用于实时课堂的事件分发方法,其特征在于,包括:
终端设备利用至少两个并行的消息通道分别获取服务器端发送的消息;
终端设备按照消息的到达顺序处理全部消息,或者仅处理顺序错乱的消息;
其中,所述消息是服务器端基于任一终端设备的用户触发的事件转换得到的,同一消息只在第一次到达终端设备时被处理。
优选地,服务器端获取任一终端设备的用户触发的事件并转换为消息,同时基于事件被触发的顺序对所述消息编号。
较佳地,终端设备利用至少两个并行的消息通道分别获取服务器端发送的消息的方法包括:
服务器端与任一终端设备之间预设至少两个消息通道;
服务器端将所述消息按照编号顺序组成消息队列;
服务器端调用至少两个消息通道将消息按照消息队列的顺序并行发送给终端设备,且每个通道用于发送全部消息至终端设备。
进一步地,所述消息通道的实现方法包括以下一项或多项:
基于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、台式计算机等等的固定终端设备,终端上安装有用于实时课堂的事件分发的客户端。
本发明中用于实时课堂的事件分发的方法可应用的场景包括但不仅限于线上课堂、线上会议,可将事件发起者(诸如老师或会议发言者)发送的事件准确无误的到达接收者(诸如学生或参会人员)的设备并能准确渲染出和事件发起者一样的页面效果,保证了良好的用户体验。
实施例二
一种用于实时课堂的事件分发系统,包括终端设备和服务器,终端设备包括消息获取模块和消息处理模块,其中,消息获取模块利用至少两个并行的消息通道分别获取服务器端发送的消息,消息是服务器端基于任一终端设备的用户触发的事件转换得到的;消息处理模块用于按照消息的到达顺序处理全部消息,或者仅处理顺序错乱的消息,同一消息只在第一次到达终端设备时被处理。
本发明提供的用于实时课堂的事件分发系统,采用上述实施例一中的用于实时课堂的事件分发方法,提高了事件对应消息的到达率和准确率,实现了实时课堂内所有终端设备的事件渲染保持一致,保证了较高的实时课堂中事件的同步性,从而保证了良好的用户体验。与现有技术相比,本发明实施例提供的用于实时课堂的事件分发系统的有益效果与上述实施例一提供的用于实时课堂的事件分发方法的有益效果相同,且用于实时课堂的事件分发系统的其他技术特征与上一实施例方法公开的特征相同,在此不做赘述。
在上述实施方式的描述中,具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (7)
1.一种用于实时课堂的事件分发方法,其特征在于,包括:
终端设备利用至少两个并行的消息通道分别获取服务器端发送的消息;
终端设备按照消息的到达顺序处理全部消息,或者仅处理顺序错乱的消息;
其中,所述终端设备包括事件发起终端,服务器端基于事件发起终端的用户触发的事件转换得到所述消息,所述事件发起终端接收到服务器端发送的消息后,仅处理顺序错乱的消息;同一消息只在第一次到达终端设备时被处理;事件发起终端处理顺序错乱的消息的方法包括:
事件发起终端对触发的事件按序编码并存储到本地,并且事件的编码和事件对应的消息的编码一致;
事件发起终端接收服务器端发送的消息后,判断获取到的消息编码顺序与本地的事件编码顺序是否一致;
若一致,则事件发起终端不处理所述消息;
若不一致,则事件发起终端处理所述消息。
2.根据权利要求1所述的用于实时课堂的事件分发方法,其特征在于,服务器端获取任一终端设备的用户触发的事件并转换为消息,同时基于事件被触发的顺序对所述消息编号。
3.根据权利要求2所述的用于实时课堂的事件分发方法,其特征在于,终端设备利用至少两个并行的消息通道分别获取服务器端发送的消息的方法包括:
服务器端与任一终端设备之间预设至少两个消息通道;
服务器端将所述消息按照编号顺序组成消息队列;
服务器端调用至少两个消息通道将消息按照消息队列的顺序并行发送给终端设备,且每个通道用于发送全部消息至终端设备。
4.根据权利要求1-3中任一项所述的用于实时课堂的事件分发方法,其特征在于,所述消息通道的实现方法包括以下一项或多项:
基于MQTT实现所述消息通道;
基于IM服务器实现所述消息通道。
5.根据权利要求1-3中任一项所述的用于实时课堂的事件分发方法,其特征在于,任一消息通道设有第一分支和第二分支,其中,
所述第一分支用于将消息存储到数据库中;
所述第二分支用于缓存消息快照以及将消息发送到终端设备中。
6.根据权利要求1所述的用于实时课堂的事件分发方法,其特征在于,所述终端设备还包括事件接收终端,所述事件接收终端接收到服务器端发送的消息后,按照消息的到达顺序处理全部消息。
7.一种用于实时课堂的事件分发系统,其特征在于,包括终端设备和服务器,所述终端设备包括消息获取模块和消息处理模块,其中,
所述消息获取模块利用至少两个并行的消息通道分别获取服务器端发送的消息;
所述消息处理模块用于按照消息的到达顺序处理全部消息,或者仅处理顺序错乱的消息;其中,同一消息只在第一次到达终端设备时被处理;所述终端设备包括事件发起终端,服务器端基于事件发起终端的用户触发的事件转换得到所述消息,所述事件发起终端接收到服务器端发送的消息后,仅处理顺序错乱的消息;事件发起终端处理顺序错乱的消息的方法包括:
事件发起终端对触发的事件按序编码并存储到本地,并且事件的编码和事件对应的消息的编码一致;
事件发起终端接收服务器端发送的消息后,判断获取到的消息编码顺序与本地的事件编码顺序是否一致;
若一致,则事件发起终端不处理所述消息;
若不一致,则事件发起终端处理所述消息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110203640.2A CN112860460B (zh) | 2021-02-23 | 2021-02-23 | 用于实时课堂的事件分发方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110203640.2A CN112860460B (zh) | 2021-02-23 | 2021-02-23 | 用于实时课堂的事件分发方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112860460A CN112860460A (zh) | 2021-05-28 |
CN112860460B true CN112860460B (zh) | 2022-01-04 |
Family
ID=75990482
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110203640.2A Active CN112860460B (zh) | 2021-02-23 | 2021-02-23 | 用于实时课堂的事件分发方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112860460B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106201735A (zh) * | 2016-06-27 | 2016-12-07 | 北京票之家科技有限公司 | 消息传输方法及系统 |
CN111045839A (zh) * | 2019-12-04 | 2020-04-21 | 中国建设银行股份有限公司 | 分布式环境下基于两阶段事务消息的顺序调用方法及装置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3544728A (en) * | 1968-05-13 | 1970-12-01 | Bell Telephone Labor Inc | Pbx telephone system wherein switch units served through different central offices are controlled by control unit at one central office |
WO2013078689A1 (zh) * | 2011-12-02 | 2013-06-06 | 华为技术有限公司 | 一种云消息服务中实现消息传递的方法和装置 |
CN103051536A (zh) * | 2012-12-22 | 2013-04-17 | 中国船舶重工集团公司第七0九研究所 | 一种二层冗余链路的快速组播切换方法 |
CN105681160B (zh) * | 2014-11-21 | 2019-02-05 | 中国移动通信集团公司 | 一种即时通信系统中纠正会话消息乱序的方法及装置 |
CN107657532A (zh) * | 2016-07-25 | 2018-02-02 | 武汉票据交易中心有限公司 | 一种业务流程的处理方法及系统 |
CN108667719B (zh) * | 2018-04-26 | 2020-11-27 | 广州品唯软件有限公司 | 一种实时消息传递方法及系统 |
CN110022369A (zh) * | 2019-04-11 | 2019-07-16 | 上海拉扎斯信息科技有限公司 | 消息处理方法、装置、电子设备及计算机可读存储介质 |
CN110049134B (zh) * | 2019-04-22 | 2020-04-14 | 苏州紫焰网络科技有限公司 | 客服聊天方法、装置、客服端、服务器及存储介质 |
CN111277844B (zh) * | 2020-01-15 | 2022-03-01 | 酷得少年(天津)文化传播有限公司 | 一种用于教学的直播系统及设备 |
-
2021
- 2021-02-23 CN CN202110203640.2A patent/CN112860460B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106201735A (zh) * | 2016-06-27 | 2016-12-07 | 北京票之家科技有限公司 | 消息传输方法及系统 |
CN111045839A (zh) * | 2019-12-04 | 2020-04-21 | 中国建设银行股份有限公司 | 分布式环境下基于两阶段事务消息的顺序调用方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112860460A (zh) | 2021-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10856029B2 (en) | Providing low and high quality streams | |
CN112437122B (zh) | 通信方法、装置、计算机可读介质及电子设备 | |
US20120017149A1 (en) | Video whisper sessions during online collaborative computing sessions | |
US7765258B2 (en) | Presentation navigation over telephone infrastructure | |
US6802019B1 (en) | Method and system for synchronizing data | |
US8065367B1 (en) | Method and apparatus for scheduling requests during presentations | |
CN115053518A (zh) | 用于在网络会议会话内同步共享视频内容的延迟补偿 | |
CN112291502B (zh) | 信息交互方法、装置、系统和电子设备 | |
CN111669606A (zh) | 一种线下线上同步教学的直播系统 | |
CN112492357A (zh) | 一种处理多视频流的方法、装置、介质和电子设备 | |
US8571189B2 (en) | Efficient transmission of audio and non-audio portions of a communication session for phones | |
CN112269770B (zh) | 文档共享方法、装置、系统和电子设备 | |
CN112202803A (zh) | 音频处理的方法、装置、终端及存储介质 | |
US20070143682A1 (en) | PRESENTATION NAVIGATION OVER VOICE OVER INTERNET PROTOCOL (VoIP) LINK | |
CN107395761B (zh) | 基于订阅的本地发布在线教育监课系统 | |
CN112860460B (zh) | 用于实时课堂的事件分发方法及系统 | |
GB2366148A (en) | Video and graphics distribution system for mobile users | |
CN113037751A (zh) | 创建音视频接收流的方法及系统 | |
CN111478916B (zh) | 基于视频流的数据传输方法、设备和存储介质 | |
CN107273224A (zh) | 基于订阅触发的消息队列控制系统 | |
CN111262653A (zh) | 一种数据的抗丢包方法、发送端、接收端及相关服务器 | |
CN110996164A (zh) | 视频发布方法、装置、电子设备及计算机可读介质 | |
CN111385590A (zh) | 直播数据处理方法、装置及终端 | |
CN113259730B (zh) | 用于直播的码率调整方法及装置 | |
CN115277649A (zh) | 多媒体会议场景下的文档协同编辑的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |