CN108173946B - 一种实现课堂实时互动的方法、系统及相关方法 - Google Patents
一种实现课堂实时互动的方法、系统及相关方法 Download PDFInfo
- Publication number
- CN108173946B CN108173946B CN201711477863.8A CN201711477863A CN108173946B CN 108173946 B CN108173946 B CN 108173946B CN 201711477863 A CN201711477863 A CN 201711477863A CN 108173946 B CN108173946 B CN 108173946B
- Authority
- CN
- China
- Prior art keywords
- sse
- server
- student
- sse server
- data
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09B—EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
- G09B5/00—Electrically-operated educational appliances
- G09B5/08—Electrically-operated educational appliances providing for individual presentation of information to a plurality of student stations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- Educational Administration (AREA)
- Educational Technology (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Information Transfer Between Computers (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Electrically Operated Instructional Devices (AREA)
Abstract
本发明公开了一种实现课堂实时互动的方法,本发明的学生端为移动终端,按预设方法模拟SSE推送信息并与SSE服务器建立连接后能实时接收教师端发来的授课相关指令及数据,而后进行相应处理,以保证包括抢答、提问、锁屏、点名等课堂互动项目的实时性,同时可以减少资源开销,降低技术复杂度,减少项目维护成本。本发明还公开了一种实现课堂实时互动的系统以及一种在移动终端模拟SSE推送信息的方法。
Description
技术领域
本发明属于移动互联网信息通讯领域,具体涉及一种实现课堂实时互动的方法、系统及相关方法。
背景技术
伴随着移动互联网时代的发展,信息化技术已经渗透到教育领域中。信息化教学模式,主要是老师使用多媒体设备例如PC机或一体机授课,学生通过移动设备例如PAD或手机学习终端进行课堂互动。老师可通过PAD或者手机移动授课,脱离讲台进行课件翻页、抢答、提问、点名、锁屏、发送文件、拍照上传对比学生作品、也可将学习过程拍摄进行视频直播等一系列课堂交互形式,这有利于提高学生的主动性、积极性,互助互动,培养协作式学习,有利于培养创新精神和信息能力的发展,更有效地刺激孩子们的求知欲和好奇心,培养学生独立思考,勇于探索的良好习惯。并同时满足学习过程数据化记录,形成学情分析,生成学习报告。
这种互动授课对实时性要求较高,例如老师利用授课端发起抢答功能,学生A反应比较快,第一个抢答到了,这个时候他的PAD上显示“您已抢答成功”,而此时刻其他学生点击抢答按钮后需要显示“A学生抢答成功”。再比如,老师利用移动授课进行课件翻页时,点击翻页按钮后设备上需要实时显示当前页和总页数。
目前,为了保证消息的实时性,主要有两种做法:
1)长轮询方式,高频率地从服务端拉取新消息。这种方式其实就是传统的请求-响应模型,现在很多文字直播软件也采取这种方式。这种方法虽然简单,但有很多缺点。一是会产生很多请求,这对服务器的压力和用户的流量都是浪费。二是消息仍然不够及时,不考虑传输时间,最长的延迟就是轮询的间隔。
2)消息的生产者主动推送消息。这应该是更好的选择,可以解决长轮询的缺点。一般即时通讯系统也会采用这种方式。使用长连接,而且连接必须是稳定可靠的,才能确保消息的实时性。
要建立一个长连接实现客户端与服务端的通信,XMPP和MQTT是当前比较成熟的两种消息协议。另外WebSocket也是一种比较流行的机制。
XMPP是一种以XML为基础的开放式即时通讯协议。XMPP的优点是安全,SASL及TL等技术的可靠安全性已内置于核心XMPP技术规格中。但是XMPP的缺点也很明显。首先,XMPP协议的方式被编码为一个单一的长的XML文件,因此无法提供修改二进制数据。其次,XML有大量的标签冗余信息,网络流量的70%都消耗在XMPP协议层了,这在移动互联网时代,流量和电量是一个不可忽视的消耗。
MQTT是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分。该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器和制动器(比如通过Twitter让房屋联网)的通信协议。但MQTT也同样有缺陷,例如不支持与第三方HTTP的集成,虽然MQTT协议优于普通的HTTP协议,但是基于传统的HTTP协议的WEB服务器仍然占主流市场,那么这些服务器要实现与MQTT协议的互联互通,以降低升级成本也尤为关键。不支持离线消息,弥补设备离线以后,MQTT服务器对设备的控制信息丢失的问题。不支持点对点通信,采用标准的MQTT协议,理论上可以通过相互订阅的方式实现点对点通信,但是逻辑相对复杂,并且对设备的安全性方面存在担忧。当设备B和设备C在同一主题的情况下,设备A无法知道是设备B还是设备C发送的消息,也有可能消息被设备D窃听。
XMPP和MQTT要想保证连接的稳定性,需要使用心跳包(Heartbeat packet),实时地检测连接状态。通常是客户端每隔一小段时间向服务器发送一个数据包,通知服务器自己仍然在线,并传输一些可能必要的数据。如果在一定时间内服务器没有响应,则认为连接可能已经断开,重新尝试连接。由于心跳包也是会消耗流量的,因此需要找到一个理想的心跳周期,在能敏锐地察觉连接变化的前提下,尽量大地增加周期间隔。
WebSocket规范是HTML 5中的一个重要组成部分,已经被很多主流浏览器所支持,也有不少基于WebSocket开发的应用。不过WebSocket技术也比较复杂,包括服务器端和浏览器端的实现都不同于一般的Web应用。表现如下:对前端开发者,往往要具备数据驱动使用javascript的能力,且需要维持住ws连接(否则消息无法推送);对后端开发者而言,难度增大了很多,一是长连接需要后端处理业务的代码更稳定(不要随便把进程和框架都crash掉),二是推送消息相对复杂一些,三是WebSocket在成熟HTTP生态下则太新了一点,没有太多组件可以复用。
发明内容
针对现有技术中存在的缺陷,本发明的目的是提供一种实现课堂实时互动的方法及系统,能够实现实时交互,且能减少资源开销、降低技术复杂度、减少项目维护成本。
一种实现课堂实时互动的方法,其中学生端为移动终端,本方法包括以下步骤:
学生端按预设方法模拟SSE推送信息,并与SSE服务器建立连接;
教师端与SSE服务器建立连接;
教师端向SSE服务器发送授课相关指令及数据;
SSE服务器向学生端推送相应指令及数据;
学生端解析接收的指令及数据,而后进行相应的处理操作;
SSE服务器将学生端发来的处理结果按预设规则发送给教师端。
进一步的,教师端通过HTPP请求向SSE服务器发送授课相关指令及数据。
进一步的,学生端解析接收的指令及数据,而后进行相应的处理操作包括:通过HTTP协议的Get或Post方法向SSE服务器做出应答响应。
进一步的,在学生端模拟SSE推送信息的方法包括:
新建一个抽象类EventSource,并实现Runnable接口创建线程;在回调run()方法中,调用创建的connect()方法;其中,在run()方法中按预设时间发送请求;在connect()中,创建到SSE服务器的连接,当连接成功后,调用onConnected方法,将响应体、状态码、Content-Type头传出。
进一步的,学生端与SSE服务器建立连接的方法包括:学生端向SSE服务器发送HTTP请求以获得SSE服务器的IP地址和端口号,SSE服务器响应该请求,把IP地址和端口号通过json的形式返回给学生端。
进一步的,学生端解析接收的指令及数据,而后进行相应的处理操作的方法包括:判断接收的指令是否是学生端与SSE服务器协议的指定类型指令,若是才解析指令并利用数据执行相应操作,否则继续等待下个指令。
进一步的,教师端为PC端或移动终端中的至少一种。
另一方面,本发明还公开了一种实现课堂实时互动的系统,包括学生端、教师端、SSE服务器端,其中:
学生端为移动终端,所述学生端用于按预设方法模拟SSE推送信息,并与SSE服务器建立连接;还用于接收并解析来自SSE服务器的授课相关指令及数据,而后进行相应的处理操作;
教师端,用于与SSE服务器建立连接,然后向SSE服务器发送授课相关指令及数据;
SSE服务器,用于接收教师端发送的授课相关指令及数据,并向学生端推送相应指令及数据;还用于将学生端发来的处理结果按预设规则发送给教师端。
进一步的,教师端通过HTPP请求向SSE服务器发送授课相关指令及数据。
进一步的,学生端解析接收的指令及数据,而后进行相应的处理操作包括:通过HTTP协议的Get或Post方法向SSE服务器做出应答响应。
进一步的,在学生端模拟SSE推送信息的方法包括:
新建一个抽象类EventSource,并实现Runnable接口创建线程;在回调run()方法中,调用创建的connect()方法;其中,在run()方法中按预设时间发送请求;在connect()中,创建到SSE服务器的连接,当连接成功后,调用onConnected方法,将响应体、状态码、Content-Type头传出。
进一步的,学生端与SSE服务器建立连接的方法包括:学生端向SSE服务器发送HTTP请求以获得SSE服务器的IP地址和端口号,SSE服务器响应该请求,把IP地址和端口号通过json的形式返回给学生端。
进一步的,学生端解析接收的指令及数据,而后进行相应的处理操作的方法包括:判断接收的指令是否是学生端与SSE服务器协议的指定类型指令,若是才解析指令并利用数据执行相应操作,否则继续等待下个指令。
进一步的,教师端为PC端或移动终端中的至少一种。
第三方面,本发明还公开了一种在移动终端模拟SSE推送信息的方法包括:
新建一个抽象类EventSource,并实现Runnable接口创建线程;在回调run()方法中,调用创建的connect()方法;其中,在run()方法中按预设时间发送请求;在connect()中,创建到SSE服务器的连接,当连接成功后,调用onConnected方法,将响应体、状态码、Content-Type头传出。
本发明的效果在于:本发明的学生端为移动终端,按预设方法模拟SSE推送信息并与SSE服务器建立连接后能实时接收教师端发来的授课相关指令及数据,而后进行相应处理,以保证包括抢答、提问、锁屏、点名等课堂互动项目的实时性,同时可以减少资源开销,降低技术复杂度,减少项目维护成本。
附图说明
图1是在一些实施例中,一种实现课堂实时互动的方法的流程图。
图2是与图1对应的一种实现课堂实时互动系统的结构示意图。
图3是与图1所对应步骤S105中,学生端解析接收的指令及数据,而后进行相应的处理操作的流程图。
图4是在另一些实施例中,一种实现课堂实时互动的方法的流程图。
图5是与图4对应的一种实现课堂实时互动系统的结构示意图。
具体实施方式
为了使本发明的目的、技术方案以及优点更加清楚明白,下面结合实施例进行进一步详细说明。应该理解的是,此实施例仅仅是本发明应用的一个方面,并不用于限定本发明。
结合图1、图2所示,在一些实施例中,一种实现课堂实时互动的方法,应用于学生端为移动终端(PAD、手机等),教师端为PC设备的场景,该方法包括以下步骤:
S101,学生端按预设方法模拟SSE推送信息,并与SSE服务器建立连接。
SSE技术(Server Sent Event,服务端发送事件)是HTML5特性,可以实现服务器端向WEB浏览器上的实时推送消息。相比于WebSocket,具有以下优点:
(1)SSE是部署在HTTP协议之上的,现有的服务器软件都支持。WebSocket是一个新的协议,需要服务器端支持。
(2)SSE是一个轻量级协议,相对简单;WebSocket是一种较重的协议,相对复杂。
(3)SSE默认支持断线重连,WebSocket则需要额外部署。
(4)SSE支持自定义发送的数据类型。
虽然SSE具有众多优点,然而现有技术仅能在PC端实现,移动终端上,不管是IOS系统或Android上都没有提供这个功能,开发难度较大。另外,SSE是单向通道,只能服务器向浏览器端发送,一般认为其使用场景有限。
为了克服现有技术偏见,本发明的学生端按预设方法模拟SSE推送信息,从而实现了在移动终端进行SSE推送信息的功能。具体的:
新建一个抽象类EventSource,并实现Runnable接口创建线程。在回调方法run()中,调用创建的connect()方法。run()中按预设时间发送请求(如每3秒发送一个请求);在connect()中,创建到SSE服务器的连接,当连接成功后,调用onConnected方法,将响应体、状态码、Content-Type头传出,如果连接失败就抛出异常。
另外,可以利用EventSource类的onOpen()、onMessage()、onError()中的至少一种方法来判断模拟SSE推送信息是否成功。比如onOpen()方法用来表示成功与服务端建立连接。OnMessage()方法用来表示收到服务器发送的消息。onError()方法产生错误时会被调用。
当模拟SSE推送信息成功就,就开始建立与SSE服务器之间的连接。可以理解,SSE服务器端和学生端之间需要提前定义好协议格式。SSE协议是基于纯文本的简单协议,服务器端的响应的内容类型是“text/event-stream”。响应文本的内容可以看成是一个事件流,由不同的事件所组成。每个事件由类型和数据两部分组成,同时每个事件可以有一个可选的标识符。在一些实施例中可以做如下约定:
类型为空白,表示该行是注释,会在处理时被忽略。
类型为data,表示该行包含的是数据。以data开头的行可以出现多次。所有这些行都是该事件的数据。data消息体为json形式的文本。SSE服务器推送的内容都在data字段里。
类型为event,表示该行用来声明事件的类型。浏览器在收到数据时,会产生对应类型的事件。
类型为id,表示该行用来声明事件的标识符。
类型为retry,表示该行用来声明移动端在连接断开之后进行再次连接之前的等待时间。
学生端与SSE服务器建立连接的方法包括:学生端向SSE服务器发送HTTP请求以获得SSE服务器的IP地址和端口号,SSE服务器响应该请求,把IP地址和端口号通过json的形式返回给学生端。
S102,教师端与SSE服务器建立连接。
在本实施例中,教师端为PC端,可以利用常规方式与SSE服务器建立连接。实际应用中一般PC教师端是用C#实现的,带图形界面的;而SSE服务器是用node js实现的,可以将SSE服务器安装于教师端所在的PC上,当老师安装教师端授课软件时,SSE服务器也就安装好了。这个环境是在教师的内网环境,无要连接外网,使用方便。由于SSE推送信息是单向的,因此教师端可以通过HTPP请求向SSE服务器发送授课相关指令及数据,以实现双向通信。本发明利用SSE技术及HTTP技术实现了双向通信,比单独使用WebSocket还要简单、方便。
可以理解的,步骤S101、S102的顺序可以交换,也可以同步进行。
S103,教师端向SSE服务器发送授课相关指令及数据。
教师端开始上课后,可点击按钮执行锁屏、抢答、屏幕广播、提问、发送文件等课堂控制操作,这些指令是以HTTP的Get或Post方法发出。在一些实施例中,比如,教师拟向学生发送提问指令,会把提问指令及相应的题干、内容等数据发给SSE服务器。更具体的,在另一些实施例中,比如要求学生端执行锁屏等操作时,包括以下操作:
方向:教师端->SSE服务器
方法:HTTP POST
URL:/classroomControl
输入:HTTP body:JSON,接口LockScreen,Race,ScreenBroadcast,Quiz,SendFiles;
输出:状态200表示成功。
S104,SSE服务器向学生端推送相应指令及数据。
比如按以下操作进行推送:
方向:SSE服务器->学生端
方法:Server sent event
URL:/messages/<uid>
输入:uid:学生端用户id
输出:没有id,data部分是JSON格式,接口ScreenCapture(指屏幕监控),ScreenBroadcast(指屏幕广播),LockScreen(指锁屏),Race(指抢答),Quiz(指提问)等。
S105,学生端解析接收的指令及数据,而后进行相应的处理操作。
结合图3所示,学生端判断接收的指令是否是学生端与SSE服务器协议的指定类型指令(参考S101中定义的类型),若是才解析指令并利用数据执行相应操作,否则继续等待下个指令。
学生端可以通过HTTP协议的Get或Post方法向SSE服务器做出应答响应。
例如:
提交抢答
方法:HTTP Post
URL:/finishRace/<raceId>/<uid>
输入:raceId:抢答的id,从推送的Race中获得。uid:学生端用户id。
输出:HTTP状态码,200表示抢到了,404表示其他人已经抢到或抢答已结束,403表示提前抢答了。
S106,SSE服务器将学生端发来的处理结果按预设规则发送给教师端。
根据不同的指令要求(抢答、提问、锁屏、点名等),SSE服务器会对学生端发来的处理结果进行不同的处置。比如,在一些实施例中,当教师端通过HTTP请求向SSE服务器发起抢答指令及数据后,SSE服务器开始向学生端推送抢答指令及数据。此时班级里所有学生平板上会弹出红色抢答按钮,提示学生开始抢答。当学生点击抢答按钮后会向SSE服务器发送HTTP请求,这个请求里会带上学生信息,SSE服务器判断谁是第一个抢答的,然后将抢答结果发送给教师端,教师端会显示“XXX抢答成功”。当然,为了提升用户体验,帮助所有学生了解抢答情况,SSE服务器还可以将抢答结果发送给各学生端。比如:抢答成功的学生,其平板电脑上会显示“抢答成功”,其余学生的平板电脑会显示“已被XXX抢答”。
可以理解的,上述学生端的功能可以由安装于移动终端上的满足上述功能的APP应用实现。本发明的学生端为移动终端,按预设方法模拟SSE推送信息并与SSE服务器建立连接后能实时接收教师端发来的授课相关指令及数据,而后进行相应处理,以保证包括抢答、提问、锁屏、点名等课堂互动项目的实时性,同时可以减少资源开销,降低技术复杂度,减少项目维护成本。
在另一些实施例中,为了方便教学,还可以使用移动设备作为教授端,这样即使老师不在讲台上也可以拿手机控制学生平板的锁屏、抢答、翻页等操作。结合图4、图5所示,一种实现课堂实时互动的方法,应用于学生端为移动终端(PAD、手机等),教师端包括第一授课端及第二授课端,第一授课端为PC设备,第二授课端为移动终端的场景,该方法包括以下步骤:
S201,学生端按预设方法模拟SSE推送信息,并与SSE服务器建立连接。
新建一个抽象类EventSource,分别实现run()方法及connect()方法,其中,在run()中按预设时间发送请求(如每3秒发送一个请求);在connect()中,创建到SSE服务器的连接,当连接成功后,调用onConnected方法,将响应体、状态码、Content-Type头传出,如果连接失败就抛出异常。
另外,可以利用EventSource类的onOpen()、onMessage()、onError()中的至少一种方法来判断模拟SSE推送信息是否成功。比如onOpen()方法用来表示成功与服务端建立连接。OnMessage()方法用来表示收到服务器发送的消息。onError()方法产生错误时会被调用。
当模拟SSE推送信息成功就,就开始建立与SSE服务器之间的连接。可以理解,SSE服务器端和学生端之间需要提前定义好协议格式。SSE协议是基于纯文本的简单协议,服务器端的响应的内容类型是“text/event-stream”。响应文本的内容可以看成是一个事件流,由不同的事件所组成。每个事件由类型和数据两部分组成,同时每个事件可以有一个可选的标识符。在一些实施例中可以做如下约定:
类型为空白,表示该行是注释,会在处理时被忽略。
类型为data,表示该行包含的是数据。以data开头的行可以出现多次。所有这些行都是该事件的数据。data消息体为json形式的文本。SSE服务器推送的内容都在data字段里。
类型为event,表示该行用来声明事件的类型。浏览器在收到数据时,会产生对应类型的事件。
类型为id,表示该行用来声明事件的标识符。
类型为retry,表示该行用来声明移动端在连接断开之后进行再次连接之前的等待时间。
学生端与SSE服务器建立连接的方法包括:学生端向SSE服务器发送HTTP请求以获得SSE服务器的IP地址和端口号,SSE服务器响应该请求,把IP地址和端口号通过json的形式返回给学生端。
S202,第二授课端按预设方法模拟SSE推送信息,并与SSE服务器建立连接。
第二授课端是移动终端,可以采用S201中的方法,跟学生端一样来模拟SSE推送信息,并与SSE服务器建立连接,在此不再赘述。
S203,第一授课端与SSE服务器建立连接。
在本实施例中,第一授课端为PC端,可以利用常规方式与SSE服务器建立连接。由于SSE推送信息是单向的,因此第一授课端可以通过HTPP请求向SSE服务器发送授课相关指令及数据,以实现双向通信。本发明利用SSE技术及HTTP技术实现了双向通信,比单独使用WebSocket还要简单、方便。
可以理解的,步骤S201、S202、S203的顺序可以交换,也可以同步进行。
如果第一授课端与SSE服务器建立连接之后,第二授课端才与SSE服务器建立连接,则第一授课端可以将获取的SSE服务器的IP地址及端口号生成二维码,供第二授课端扫描该二维码后与SSE服务器建立连接。此方法能提升第二授课端连接SSE服务器的便捷性。
S204,第一授课端或第二授课端向SSE服务器发送授课相关指令及数据。
教师端开始上课后,可点击按钮执行锁屏、抢答、屏幕广播、提问、发送文件等课堂控制操作,这些指令是以HTTP的Get或Post方法发出。在一些实施例中,比如,第一授课端拟向学生发送提问指令,会把提问指令及相应的题干、内容等数据发给SSE服务器。
S205,SSE服务器向学生端推送相应指令及数据。
方向:SSE服务器->学生端
方法:Server sent event
URL:/messages/<uid>
输入:uid:学生端用户id
输出:没有id,data部分是JSON格式,接口ScreenCapture,ScreenBroadcast,LockScreen,Race,Quiz等。
S206,学生端解析接收的指令及数据,而后进行相应的处理操作。
学生端判断接收的指令是否是学生端与SSE服务器协议的指定类型指令(参考S101中定义的类型),若是才解析指令并利用数据执行相应操作,否则继续等待下个指令。
学生端可以通过HTTP协议的Get或Post方法向SSE服务器做出应答响应。
例如:
提交抢答
方法:HTTP Post
URL:/finishRace/<raceId>/<uid>
输入:raceId:抢答的id,从推送的Race中获得。uid:学生端用户id。
输出:HTTP状态码,200表示抢到了,404表示其他人已经抢到或抢答已结束,403表示提前抢答了。
S207,SSE服务器将学生端发来的处理结果按预设规则发送给教师端。
具体的,在一些实施例中,第二授课端发起锁屏指令。工作流程如下:
(1)第二授课端点击锁屏按钮,先向SSE服务器发送HTTP请求,要求SSE服务器推送锁屏指令。
(2)SSE服务器推送锁屏指令至学生端,学生端收到锁屏指令后调用锁屏方法,让平板黑屏。
(3)SSE服务器将锁屏指令推送回第二授课端,第二授课端收到指令后把刚才点击的按钮状态变成一个加锁的图标,表示此时学生端正处在锁屏状态。在本实施例中,第二授课端每发出一个指令,待学生端处理完后,SSE服务器都会推送回给教师端,如此可以实现SSE服务器和第二授课端之间的长连接。同时也能实时同步状态,保证UI界面及时更新,增强用户体验。
另一方面,如图2、图5所示,本发明还公开了一种实现课堂实时互动的系统,包括学生端10、教师端20、SSE服务器30端,其中:
学生端10为移动终端,所述学生端10用于按预设方法模拟SSE推送信息,并与SSE服务器30建立连接;还用于接收并解析来自SSE服务器30的授课相关指令及数据,而后进行相应的处理操作。
在学生端10模拟SSE推送信息的方法包括:
新建一个抽象类EventSource,并实现Runnable接口创建线程;在回调run()方法中,调用创建的connect()方法;其中,在run()方法中按预设时间发送请求;在connect()中,创建到SSE服务器30的连接,当连接成功后,调用onConnected方法,将响应体、状态码、Content-Type头传出。
学生端10与SSE服务器30建立连接的方法包括:学生端10向SSE服务器30发送HTTP请求以获得SSE服务器30的IP地址和端口号,SSE服务器30响应该请求,把IP地址和端口号通过json的形式返回给学生端10。
学生端10解析接收的指令及数据,而后进行相应的处理操作包括:判断接收的指令是否是学生端10与SSE服务器30协议的指定类型指令,若是才解析指令并利用数据执行相应操作,否则继续等待下个指令。学生端10通过HTTP协议的Get或Post方法向SSE服务器30做出应答响应,由SSE服务器30转发给教师端20。
教师端20,为PC端或移动终端中的至少一种,用于与SSE服务器30建立连接,然后向SSE服务器30发送授课相关指令及数据。如图5所示的系统中,教师端包括第一授课端及第二授课端,第一授课端为PC设备,第二授课端为移动终端。
SSE服务器30,用于接收教师端20发送的授课相关指令及数据,并向学生端10推送相应指令及数据;还用于将学生端发来的处理结果按预设规则发送给教师端。
实际应用中可以将SSE服务器30安装于教师端20所在的PC上,当老师安装教师端20授课软件时,SSE服务器30也就安装好了。这个环境是在教师的内网环境,无要连接外网,使用方便。
该系统的具体工作方法可以参考上述实现课堂实时互动的方法部分的具体实施例,在此不再赘述。
本领域技术人员应该明白,本发明所述的方法和系统并不限于具体实施方式中所述的实施例,上面的具体描述只是为了解释本发明的目的,并非用于限制本发明。本领域技术人员根据本发明的技术方案得出其他的实施方式,同样属于本发明的技术创新范围,本发明的保护范围由权利要求及其等同物限定。
Claims (7)
1.一种实现课堂实时互动的方法,其特征在于,学生端为移动终端,本方法包括以下步骤:
学生端按预设方法模拟SSE推送信息,并与SSE服务器建立连接;
其中,在学生端模拟SSE推送信息的方法包括:
新建一个抽象类EventSource,并实现Runnable接口创建线程;在回调run()方法中,调用创建的connect()方法;其中,在run()方法中按预设时间发送请求;在connect()中,创建到SSE服务器的连接,当连接成功后,调用onConnected方法,将响应体、状态码、Content-Type头传出,如果连接失败就抛出异常;
学生端与SSE服务器建立连接的方法包括:学生端向SSE服务器发送HTTP请求以获得SSE服务器的IP地址和端口号,SSE服务器响应该请求,把IP地址和端口号通过json的形式返回给学生端;
教师端与SSE服务器建立连接;
教师端向SSE服务器发送授课相关指令及数据;
SSE服务器向学生端推送相应指令及数据;
学生端解析接收的指令及数据,而后进行相应的处理操作;
SSE服务器将学生端发来的处理结果按预设规则发送给教师端。
2.一种实现课堂实时互动的系统,其特征在于,包括学生端、教师端、SSE服务器端,其中:
学生端为移动终端,所述学生端用于按预设方法模拟SSE推送信息,并与SSE服务器建立连接;还用于接收并解析来自SSE服务器的授课相关指令及数据,而后进行相应的处理操作;
教师端,用于与SSE服务器建立连接,然后向SSE服务器发送授课相关指令及数据;
SSE服务器,用于接收教师端发送的授课相关指令及数据,并向学生端推送相应指令及数据;还用于将学生端发来的处理结果按预设规则发送给教师端;
其中,在学生端模拟SSE推送信息的方法包括:
新建一个抽象类EventSource,并实现Runnable接口创建线程;在回调run()方法中,调用创建的connect()方法;其中,在run()方法中按预设时间发送请求;在connect()中,创建到SSE服务器的连接,当连接成功后,调用onConnected方法,将响应体、状态码、Content-Type头传出,如果连接失败就抛出异常;
学生端与SSE服务器建立连接的方法包括:学生端向SSE服务器发送HTTP请求以获得SSE服务器的IP地址和端口号,SSE服务器响应该请求,把IP地址和端口号通过json的形式返回给学生端。
3.如权利要求1所述的方法或如权利要求2所述的系统,其特征在于:教师端通过HTPP请求向SSE服务器发送授课相关指令及数据。
4.如权利要求1所述的方法或如权利要求2所述的系统,其特征在于:学生端解析接收的指令及数据,而后进行相应的处理操作包括:通过HTTP协议的Get或Post方法向SSE服务器做出应答响应。
5.如权利要求1所述的方法或如权利要求2所述的系统,其特征在于:学生端解析接收的指令及数据,而后进行相应的处理操作的方法包括:判断接收的指令是否是学生端与SSE服务器协议的指定类型指令,若是才解析指令并利用数据执行相应操作,否则继续等待下个指令。
6.如权利要求1所述的方法或如权利要求2所述的系统,其特征在于:教师端为PC端或移动终端中的至少一种。
7.一种在移动终端模拟SSE推送信息的方法,其特征在于,本方法包括以下步骤:
新建一个抽象类EventSource,并实现Runnable接口创建线程;在回调run()方法中,调用创建的connect()方法;其中,在run()方法中按预设时间发送请求;在connect()中,创建到SSE服务器的连接,当连接成功后,调用onConnected方法,将响应体、状态码、Content-Type头传出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711477863.8A CN108173946B (zh) | 2017-12-29 | 2017-12-29 | 一种实现课堂实时互动的方法、系统及相关方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711477863.8A CN108173946B (zh) | 2017-12-29 | 2017-12-29 | 一种实现课堂实时互动的方法、系统及相关方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108173946A CN108173946A (zh) | 2018-06-15 |
CN108173946B true CN108173946B (zh) | 2022-03-22 |
Family
ID=62520042
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711477863.8A Active CN108173946B (zh) | 2017-12-29 | 2017-12-29 | 一种实现课堂实时互动的方法、系统及相关方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108173946B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108696537B (zh) * | 2018-07-09 | 2020-10-16 | 武汉斗鱼网络科技有限公司 | Ios系统中长连接网络数据分发及处理方法和系统 |
CN109005242A (zh) * | 2018-08-24 | 2018-12-14 | 重庆虚拟实境科技有限公司 | Vr终端远程教育实时交互方法及远程教育实时交互系统 |
CN109326157A (zh) * | 2018-11-27 | 2019-02-12 | 湖南长沙阳环科技实业有限公司 | 一种基于平板的课堂答题系统 |
CN110380967B (zh) * | 2019-04-17 | 2021-06-22 | 武汉初心科技有限公司 | 一种基于sse技术的服务器推送消息方法 |
CN110136510A (zh) * | 2019-05-16 | 2019-08-16 | 西安工业大学 | 一种智能多媒体教学管理平台 |
TWI729830B (zh) * | 2020-05-29 | 2021-06-01 | 亞東技術學院 | 以物聯網為基礎的情境式資訊廣播系統及方法 |
CN114172945B (zh) * | 2021-11-26 | 2023-05-26 | 武汉烽火技术服务有限公司 | 一种模拟实现全双工即时通信方法与设备 |
CN114257630B (zh) * | 2021-12-08 | 2023-09-26 | 深圳市优必选科技股份有限公司 | 课堂实时交互方法、系统、终端设备及可读存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060141426A1 (en) * | 2004-12-23 | 2006-06-29 | Inventec Corporation | Virtual scene interactive language learning system and method |
US8941735B2 (en) * | 2008-07-25 | 2015-01-27 | International Business Machines Corporation | Network based real-time analytics of raw video streams |
CN105812261B (zh) * | 2016-03-07 | 2019-02-26 | 北京交通大学 | 信息中心网络中的报文转发方法和系统 |
CN106649872A (zh) * | 2017-01-04 | 2017-05-10 | 李四红 | 一种政务信息发布方法、装置和系统 |
-
2017
- 2017-12-29 CN CN201711477863.8A patent/CN108173946B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN108173946A (zh) | 2018-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108173946B (zh) | 一种实现课堂实时互动的方法、系统及相关方法 | |
US10805380B2 (en) | Data transmission method and device | |
CN105448149B (zh) | 一种教学中的互动与即时反馈系统及方法 | |
US20080225757A1 (en) | Web-based interactive learning system and method | |
CN105763653A (zh) | 一种统计信息生成的方法和服务器 | |
CN105847988A (zh) | 视频分享方法和装置 | |
CN107040816A (zh) | 一种客户端应用运行异常分析方法与装置 | |
CN108965932B (zh) | 一种连麦窗口展示方法及装置 | |
KR101289870B1 (ko) | 스마트단말기를 이용한 스마트 수업 진행시스템 | |
CN111338865A (zh) | 一种测试方法、装置、及计算机可读存储介质 | |
CN107783807B (zh) | 一种屏幕截图的方法及装置 | |
CN110620934A (zh) | 用于直播教学的互动方法和装置 | |
CN107665139B (zh) | 用于在线教学中的实时双向绘制的实现方法及装置 | |
US11575528B1 (en) | Dynamic virtual meeting, online webinar and distance-based education systems and methods | |
US8161113B2 (en) | Rich signaling feedback mechanism for group communication | |
CN105448008B (zh) | 一种电子化课堂抢答的实现方法、装置和系统 | |
CN110445625B (zh) | 一种大屏广播控制方法及系统 | |
CN113747247B (zh) | 直播方法、装置、计算机设备和存储介质 | |
CN112632299B (zh) | 文档演示方法、装置、设备及存储介质 | |
Schön et al. | MobileQuiz-a lecture survey tool using smartphones and QR tags | |
CN114048087B (zh) | 设备的数据中转性能的测试方法及装置 | |
Pinikas et al. | Extension of the webrtc data channel towards remote collaboration and control | |
CN108961120A (zh) | 一种网络教育分布式管理系统 | |
Pandusadewa et al. | Development of conversation application as english learning using WebRTC | |
CN111954015B (zh) | 一种在线直播课堂的实现方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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 |