本發(fā)明涉及課堂教學(xué)領(lǐng)域,特別涉及一種基于MQTT協(xié)議的移動(dòng)端試題分發(fā)與作答的方法。
背景技術(shù):
隨著移動(dòng)端以及移動(dòng)互聯(lián)網(wǎng)的快速發(fā)展,學(xué)校課堂的數(shù)字化隨之普及,相對于傳統(tǒng)的教學(xué)方法,在課堂上使用移動(dòng)端作為教學(xué)工具,能夠大大提高許多教學(xué)環(huán)節(jié)的效率,其中非常具有代表性的就是試題分發(fā)與作答環(huán)節(jié)。教師只需要在移動(dòng)端上設(shè)置好題目,分發(fā)給學(xué)生,學(xué)生即可即時(shí)作答,把結(jié)果回饋給老師,并記錄下答題結(jié),供分析和統(tǒng)計(jì)。
目前這只是一種人們所期望達(dá)到的理想狀態(tài),在實(shí)際應(yīng)用中并沒有一種很成熟的做法來滿足人們的需求。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于克服現(xiàn)有技術(shù)的缺點(diǎn)與不足,提供一種基于MQTT協(xié)議的移動(dòng)端試題分發(fā)與作答的方法。
本發(fā)明的目的通過以下的技術(shù)方案實(shí)現(xiàn):
一種基于MQTT協(xié)議的移動(dòng)端試題分發(fā)與作答的方法,包括以下步驟:
S1、教師登錄移動(dòng)端中的教師端應(yīng)用,登錄MQTT服務(wù)器,并使用MQTT協(xié)議封裝庫,訂閱“全體學(xué)生”主題;
S2、學(xué)生登錄移動(dòng)端中的學(xué)生端應(yīng)用,登錄MQTT服務(wù)器,使用MQTT協(xié)議封裝庫,訂閱“教師”主題;
S3、教師選擇題目,將題目信息封裝為JSON格式,將JSON文本發(fā)布至“全體學(xué)生”主題(即發(fā)布給所有學(xué)生),同時(shí)將分發(fā)試題環(huán)節(jié)所產(chǎn)生的數(shù)據(jù)(包括主題者,出題內(nèi)容,出題時(shí)間等數(shù)據(jù)),以xAPI標(biāo)準(zhǔn)格式上傳至數(shù)據(jù)采集服務(wù)器;
S4、學(xué)生接收到JSON格式的題目后,進(jìn)行解析,還原為原題目,展現(xiàn)至學(xué)生端界面,供學(xué)生回答;
S5、學(xué)生回答完畢后,一方面將結(jié)果信息封裝為JSON格式發(fā)布至“教師”主題(即反饋給老師),另一方面將作答環(huán)節(jié)所產(chǎn)生的數(shù)據(jù)(包括回答者,回答結(jié)果,作答時(shí)長等數(shù)據(jù))以xAPI標(biāo)準(zhǔn)格式上傳至數(shù)據(jù)采集服務(wù)器;
S6、教師端收到學(xué)生的作答結(jié)果的JSON文本后,進(jìn)行解析,還原為學(xué)生作答的結(jié)果,展現(xiàn)至教師端界面,供教師觀察學(xué)生作答情況,并進(jìn)行評分;
S7、數(shù)據(jù)采集服務(wù)器的數(shù)據(jù)庫中,以xAPI標(biāo)準(zhǔn)保存的所有數(shù)據(jù),根據(jù)不同需求,開發(fā)各種接口,供學(xué)生端或教師端查看所有出題信息、作答信息、評分信息或者其他更加復(fù)雜的數(shù)據(jù)。
步驟S1和S2中,所述登錄MQTT服務(wù)器,需使用MQTT在各移動(dòng)端的封裝庫,同時(shí)設(shè)置參數(shù),所述參數(shù)包括服務(wù)器IP、端口號(hào)、用戶名、密碼、心跳時(shí)間、超時(shí)時(shí)間;登陸成功后,需建立后臺(tái)消息監(jiān)聽機(jī)制,等待響應(yīng)MQTT服務(wù)器送達(dá)的消息。
步驟S3中,所述題目有兩種生成方式:一種是使用Office相關(guān)插件或其他第三方試題編輯工具而生成的關(guān)于題目的文本數(shù)據(jù),另外一種是使用移動(dòng)端截屏功能或者拍照功能所形成的圖片格式。
所述題目若是文本格式,將其直接封裝為JSON格式發(fā)送;所述題目若是圖片格式,則需另外搭建一個(gè)文件服務(wù)器,先將文件上傳至服務(wù)器,并獲得圖片在服務(wù)器的URL后,將URL封裝到JSON中發(fā)送。
所述文本數(shù)據(jù)的格式為XML或JSON。
步驟S4中,所述題目若為圖片格式,則需先根據(jù)收到的圖片URL,將圖片從文件服務(wù)器中下載下來。
步驟S5中,所述題目若為客觀題(包括判斷題,選擇題)直接在學(xué)生作答完畢以后,直接在學(xué)生端顯示作答結(jié)果;若學(xué)生作答結(jié)果為圖片格式,則需先將文件上傳至服務(wù)器,并獲得圖片在服務(wù)器的URL后,將URL封裝到JSON中發(fā)送。
所述教師端允許教師強(qiáng)制所有學(xué)生提交作答結(jié)果;同時(shí)若題目為客觀題則直接顯示已提交學(xué)生的作答結(jié)果和分?jǐn)?shù);若為主觀題,則允許教師進(jìn)行即時(shí)評分,并把評分結(jié)果發(fā)送至響應(yīng)學(xué)生;最終無論主觀題還是客觀題,都需要把得分結(jié)果以xAPI標(biāo)準(zhǔn)格式上傳至服務(wù)器;同時(shí),若學(xué)生作答的結(jié)果為圖片格式,則需先根據(jù)收到的圖片URL,將圖片從文件服務(wù)器中下載下來。
步驟S7中,所述數(shù)據(jù)采集服務(wù)器使用非關(guān)系型數(shù)據(jù)庫存儲(chǔ)數(shù)據(jù)(包括Redis、MongoDB)。
所述移動(dòng)端包括Android設(shè)備、WP設(shè)備或者iOS設(shè)備。
本發(fā)明與現(xiàn)有技術(shù)相比,具有如下優(yōu)點(diǎn)和有益效果:
1、本發(fā)明所采用的MQTT(Message Queuing Telemetry Transport)協(xié)議,是IBM所開發(fā)的一種基于發(fā)布/訂閱模型的即時(shí)通訊協(xié)議,該協(xié)議具有以下特點(diǎn):
傳輸十分輕量,其固定頭部的長度只有兩個(gè)字節(jié),相對更加省電,省流量。
本身支持一對多的發(fā)送模型。
其頭部的Qos字段,可以保證消息傳遞的次數(shù),以及其Testament,Last Will特性可以通知客戶端的異常中斷,這都使其相對可靠。
由此可見,MQTT協(xié)議特別適合工作于設(shè)備數(shù)量較多,設(shè)備計(jì)算能力較低,網(wǎng)絡(luò)環(huán)境較不穩(wěn)定的一對多場景下。故使用該協(xié)議作為課堂中教師向?qū)W生分發(fā)試題的基礎(chǔ)協(xié)議是非常理想的。
2、xAPI(Experience API)是由美國“高級分布式學(xué)習(xí)”組織發(fā)布的針對教育大數(shù)據(jù)所制定的一系列的數(shù)據(jù)格式標(biāo)準(zhǔn)。這個(gè)標(biāo)準(zhǔn)針對教育行業(yè),旨在解決教育行業(yè)大數(shù)據(jù)的數(shù)據(jù)互操作性,數(shù)據(jù)格式標(biāo)準(zhǔn)化,數(shù)據(jù)服務(wù)擴(kuò)展等問題。本發(fā)明試題統(tǒng)計(jì)和分析部分中所有采集的數(shù)據(jù),完全遵從xAPI標(biāo)準(zhǔn)。
3、由于使用MQTT協(xié)議作為通訊協(xié)議,本方案具有MQTT協(xié)議的所有優(yōu)點(diǎn),例如節(jié)省流量,節(jié)省電量,簡單,易擴(kuò)展等。
4、使用xAPI標(biāo)準(zhǔn),該標(biāo)準(zhǔn)針對教育行業(yè),解決了教育大數(shù)據(jù)的諸多問題,也便于與其他使用了該標(biāo)準(zhǔn)的系統(tǒng)快速對接。
5、支持多種試題格式,不僅支持以XML或JSON為格式的文本類試題,同時(shí)也支持圖片格式的試題。
6、后臺(tái)統(tǒng)計(jì)信息使用非關(guān)系型數(shù)據(jù)庫,一方面,對于這類海量數(shù)據(jù),非關(guān)系型數(shù)據(jù)庫執(zhí)行效率更高,而且便于使用Hadoop等進(jìn)行大數(shù)據(jù)計(jì)算。另一方面xAPI標(biāo)準(zhǔn)本身可以基于JSON,很適合使用非關(guān)系型數(shù)據(jù)庫。
附圖說明
圖1為本發(fā)明所述一種基于MQTT協(xié)議的移動(dòng)端試題分發(fā)與作答的方法的流程圖。
圖2為實(shí)施圖1所述方法的硬件架構(gòu)圖。
具體實(shí)施方式
下面結(jié)合實(shí)施例及附圖對本發(fā)明作進(jìn)一步詳細(xì)的描述,但本發(fā)明的實(shí)施方式不限于此。
如圖1、2,一種基于MQTT協(xié)議的移動(dòng)端試題分發(fā)與作答的方法,包含以下步驟:
S1、教師端應(yīng)用登錄MQTT服務(wù)器,訂閱“教師”話題,并開始監(jiān)聽來自MQTT服務(wù)器的消息。
S2、學(xué)生端應(yīng)用登錄MQTT服務(wù)器,訂閱“全部學(xué)生”話題,并開始監(jiān)聽來自MQTT服務(wù)器的消息。
S3、若教師發(fā)送的試題為圖片格式,需首先將試題圖片上傳至文件服務(wù)器。否則跳至S5。
S4、教師端接收到圖片服務(wù)器返回的試題圖片的URL路徑。
S5、教師端以JSON格式將試題信息發(fā)布至“全部學(xué)生”話題。
S6、學(xué)生端收到JSON格式的試題,并進(jìn)行解析和試題展現(xiàn)。
S7、若教師端分發(fā)的試題為圖片格式,學(xué)生端則向文件服務(wù)器發(fā)起下載圖圖片請求。否則跳至S9。
S8、學(xué)生端接收到圖片服務(wù)器返回的試題圖片的URL路徑。
S9、學(xué)生作答。
S10、教師端將試題分發(fā)信息上傳至數(shù)據(jù)統(tǒng)計(jì)服務(wù)器。
S11、若學(xué)生作答的結(jié)果為圖片格式,則上傳學(xué)生作答圖片至文件服務(wù)器,否則跳至S12。
S12、學(xué)生端收到圖片服務(wù)器返回的學(xué)生作答圖片的URL路徑。
S13、學(xué)生端將作答作答信息發(fā)布至“教師”話題。
S14、教師收到學(xué)生作答結(jié)果。
S15、若教師端收到的學(xué)生作答結(jié)果為圖片格式,則向文件服務(wù)器發(fā)起下載學(xué)生作答圖片圖片的請求,否則跳至S16。
S16、教師端收到圖片服務(wù)器返回的學(xué)生作答圖片的URL路徑。
S17、學(xué)生端將學(xué)生的作答信息上傳至數(shù)據(jù)統(tǒng)計(jì)服務(wù)器。
S18、教師觀察學(xué)生作答結(jié)果,并評分。
S19、將教師評分信息上傳至數(shù)據(jù)統(tǒng)計(jì)服務(wù)器。
S20、學(xué)生端向數(shù)據(jù)統(tǒng)計(jì)服務(wù)器發(fā)起請求,查看各類統(tǒng)計(jì)結(jié)果。
S21、學(xué)生端收到數(shù)據(jù)統(tǒng)計(jì)服務(wù)器進(jìn)行統(tǒng)計(jì)后的結(jié)果。
S22、教師端向數(shù)據(jù)統(tǒng)計(jì)服務(wù)器發(fā)起請求,查看各類統(tǒng)計(jì)結(jié)果。
S23、教師端收到數(shù)據(jù)統(tǒng)計(jì)服務(wù)器進(jìn)行統(tǒng)計(jì)后的結(jié)果。
上述實(shí)施例為本發(fā)明較佳的實(shí)施方式,但本發(fā)明的實(shí)施方式并不受上述實(shí)施例的限制,其他的任何未背離本發(fā)明的精神實(shí)質(zhì)與原理下所作的改變、修飾、替代、組合、簡化,均應(yīng)為等效的置換方式,都包含在本發(fā)明的保護(hù)范圍之內(nèi)。