本發(fā)明涉及通信領(lǐng)域,具體而言,涉及一種基于iptv的視頻直播方法、裝置及系統(tǒng)。
背景技術(shù):
為了方便用戶在家里就能通過(guò)交互式網(wǎng)絡(luò)電視(iptv)觀看醫(yī)生實(shí)時(shí)直播醫(yī)學(xué)知識(shí)及病例分析等,同時(shí)通過(guò)電話與正在直播的醫(yī)生進(jìn)行交流,為疑惑尋找答案。在用戶足不出戶的情況下,在家里就能的享受到滿意的一站式的醫(yī)療服務(wù),避免了用戶去醫(yī)院就診遇到排隊(duì)、叫號(hào)難等問(wèn)題,真正的體會(huì)到互聯(lián)網(wǎng)給生活帶來(lái)的便利。
然而,傳統(tǒng)的實(shí)現(xiàn)方式,并沒(méi)有分模塊處理,所有的業(yè)務(wù)邏輯全部都放在一起,錯(cuò)綜復(fù)雜,各模塊之間耦合度高,有的甚至通過(guò)全局變量來(lái)控制。這種實(shí)現(xiàn)方式,加大了程序的開(kāi)發(fā)難度,并不利于后期的調(diào)整、維護(hù)以及升級(jí)等,同時(shí)也給程序的不穩(wěn)定性埋下了隱患。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的主要目的在于公開(kāi)了一種基于iptv的視頻直播方法、裝置及系統(tǒng),以至少解決相關(guān)技術(shù)中采用傳統(tǒng)實(shí)現(xiàn)方式將所有的業(yè)務(wù)邏輯全部放在一起,加大了程序的開(kāi)發(fā)難度,并不利于后期的調(diào)整、維護(hù)以及升級(jí)等,給程序的不穩(wěn)定性埋下了隱患等問(wèn)題。
根據(jù)本發(fā)明的一個(gè)方面,提供了一種基于iptv的視頻直播方法。
根據(jù)本發(fā)明的基于iptv的視頻直播方法包括:接收來(lái)自于iptv客戶端的視頻直播請(qǐng)求;從互聯(lián)網(wǎng)醫(yī)院服務(wù)器獲取當(dāng)前節(jié)目信息列表,并推送至上述iptv客戶端;將上述iptv客戶端的用戶標(biāo)識(shí)信息以及用戶選擇的醫(yī)生標(biāo)識(shí)信息發(fā)送至上述互聯(lián)網(wǎng)醫(yī)院服務(wù)器;接收來(lái)自于上述互聯(lián)網(wǎng)醫(yī)院服務(wù)器的直播房間標(biāo)識(shí)信息并將該直播房間標(biāo)識(shí)信息作為參數(shù)加入視頻服務(wù)器,以使上述視頻服務(wù)器將上述醫(yī)生標(biāo)識(shí)信息對(duì)應(yīng)的直播視頻數(shù)據(jù)轉(zhuǎn)發(fā)至上述iptv客戶端實(shí)現(xiàn)視頻直播功能。
根據(jù)本發(fā)明的另一方面,提供了一種基于iptv的視頻直播裝置。
根據(jù)本發(fā)明的基于iptv的視頻直播裝置包括:第一接收模塊,用于接收來(lái)自于iptv客戶端的視頻直播請(qǐng)求;獲取推送模塊,用于從互聯(lián)網(wǎng)醫(yī)院服務(wù)器獲取當(dāng)前節(jié)目信息列表,并推送至上述iptv客戶端;發(fā)送模塊,用于將上述iptv客戶端的用戶標(biāo)識(shí)信息以及用戶選擇的醫(yī)生標(biāo)識(shí)信息發(fā)送至上述互聯(lián)網(wǎng)醫(yī)院服務(wù)器;第二接收模塊,用于接收來(lái)自于上述互聯(lián)網(wǎng)醫(yī)院服務(wù)器的直播房間標(biāo)識(shí)信息并將該直播房間標(biāo)識(shí)信息作為參數(shù)加入視頻服務(wù)器,以使上述視頻服務(wù)器將上述醫(yī)生標(biāo)識(shí)信息對(duì)應(yīng)的直播視頻數(shù)據(jù)轉(zhuǎn)發(fā)至上述iptv客戶端實(shí)現(xiàn)視頻直播功能。
根據(jù)本發(fā)明的又一方面,提供了一種基于iptv的視頻直播系統(tǒng)。
根據(jù)本發(fā)明的基于iptv的視頻直播系統(tǒng)包括:視頻直播服務(wù)器,互聯(lián)網(wǎng)醫(yī)院服務(wù)器、iptv客戶端、以及視頻服務(wù)器;其中,上述視頻直播服務(wù)器,分別與上述互聯(lián)網(wǎng)醫(yī)院服務(wù)器、上述iptv客戶端和上述視頻服務(wù)器相連接,用于接收來(lái)自于iptv客戶端的視頻直播請(qǐng)求,用于從互聯(lián)網(wǎng)醫(yī)院服務(wù)器獲取當(dāng)前節(jié)目信息列表,并推送至上述iptv客戶端;將上述iptv客戶端的用戶標(biāo)識(shí)信息以及用戶選擇的醫(yī)生標(biāo)識(shí)信息發(fā)送至上述互聯(lián)網(wǎng)醫(yī)院服務(wù)器,接收來(lái)自于上述互聯(lián)網(wǎng)醫(yī)院服務(wù)器的直播房間標(biāo)識(shí)信息并將該直播房間標(biāo)識(shí)信息作為參數(shù)加入視頻服務(wù)器,以使上述視頻服務(wù)器將上述醫(yī)生標(biāo)識(shí)信息對(duì)應(yīng)的直播視頻數(shù)據(jù)轉(zhuǎn)發(fā)至上述iptv客戶端實(shí)現(xiàn)視頻直播功能。
與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例至少具有以下優(yōu)點(diǎn):在iptv電視機(jī)頂盒設(shè)置模塊,負(fù)責(zé)接收來(lái)自客戶端以及互聯(lián)網(wǎng)醫(yī)院服務(wù)器的信令,實(shí)現(xiàn)一系列的協(xié)助握手以信令交互,最終實(shí)現(xiàn)實(shí)時(shí)視頻直播功能。通過(guò)該模塊處理各服務(wù)器間的視頻問(wèn)診業(yè)務(wù)邏輯,以及狀態(tài)控制,iptv客戶端只要關(guān)心我要做什么,而不用關(guān)心怎么做,這樣減輕了iptv客戶端的業(yè)務(wù)邏輯處理,降低iptv客戶端的壓力,也增強(qiáng)了iptv客戶端的穩(wěn)定性。
附圖說(shuō)明
圖1是根據(jù)本發(fā)明實(shí)施例的基于iptv的視頻直播方法的流程圖;
圖2是根據(jù)本發(fā)明優(yōu)選實(shí)施例的基于iptv的視頻直播系統(tǒng)的架構(gòu)圖;
圖3是根據(jù)本發(fā)明優(yōu)選實(shí)施例的基于iptv的視頻直播方法的時(shí)序圖;
圖4是根據(jù)本發(fā)明實(shí)施例的基于iptv的視頻直播裝置的結(jié)構(gòu)框圖;
圖5是根據(jù)本發(fā)明實(shí)施例的基于iptv的視頻直播系統(tǒng)的結(jié)構(gòu)框圖;以及
圖6是根據(jù)本發(fā)明優(yōu)選實(shí)施例的基于iptv的視頻直播系統(tǒng)的結(jié)構(gòu)框圖。
具體實(shí)施方式
下面結(jié)合說(shuō)明書(shū)附圖對(duì)本發(fā)明的具體實(shí)現(xiàn)方式做一詳細(xì)描述。
圖1是根據(jù)本發(fā)明實(shí)施例的基于iptv的視頻直播方法的流程圖。如圖1所示,該基于iptv的視頻直播方法包括:
步驟s101:接收來(lái)自于iptv客戶端的視頻直播請(qǐng)求;
步驟s103:從互聯(lián)網(wǎng)醫(yī)院服務(wù)器獲取當(dāng)前節(jié)目信息列表,并推送至上述iptv客戶端;
步驟s105:將上述iptv客戶端的用戶標(biāo)識(shí)信息以及用戶選擇的醫(yī)生標(biāo)識(shí)信息發(fā)送至上述互聯(lián)網(wǎng)醫(yī)院服務(wù)器;
步驟s107:接收來(lái)自于上述互聯(lián)網(wǎng)醫(yī)院服務(wù)器的直播房間標(biāo)識(shí)信息并將該直播房間標(biāo)識(shí)信息作為參數(shù)加入視頻服務(wù)器,以使上述視頻服務(wù)器將上述醫(yī)生標(biāo)識(shí)信息對(duì)應(yīng)的直播視頻數(shù)據(jù)轉(zhuǎn)發(fā)至上述iptv客戶端實(shí)現(xiàn)視頻直播功能。
在iptv電視機(jī)頂盒設(shè)置模塊,負(fù)責(zé)接收來(lái)自客戶端以及互聯(lián)網(wǎng)醫(yī)院服務(wù)器的信令,實(shí)現(xiàn)一系列的協(xié)助握手以信令交互,最終實(shí)現(xiàn)實(shí)時(shí)視頻直播功能。通過(guò)該模塊處理各服務(wù)器間的視頻問(wèn)診業(yè)務(wù)邏輯,以及狀態(tài)控制,iptv客戶端只要關(guān)心我要做什么,而不用關(guān)心怎么做,這樣減輕了iptv客戶端的業(yè)務(wù)邏輯處理,降低iptv客戶端的壓力,也增強(qiáng)了iptv客戶端的穩(wěn)定性。
優(yōu)選地,在接收來(lái)自于iptv客戶端的用戶問(wèn)診請(qǐng)求之前,還包括:用于查詢后臺(tái)配置信息的中心web服務(wù)器(cws)接收來(lái)自于上述iptv客戶端的查詢直播節(jié)目信息的請(qǐng)求;上述中心web服務(wù)器向上述iptv客戶端返回直播節(jié)目信息,其中,上述直播節(jié)目信息攜帶有醫(yī)生標(biāo)識(shí)信息。
在優(yōu)選實(shí)施過(guò)程中,iptv客戶端先向cws獲取配置在后臺(tái)的數(shù)據(jù),以確定有哪些節(jié)目在進(jìn)行直播。在iptv客戶端獲取到后臺(tái)的數(shù)據(jù)后,再向互聯(lián)網(wǎng)醫(yī)院服務(wù)器(his)查詢直播節(jié)目的具體信息如節(jié)目信息列表。
優(yōu)選地,接收來(lái)自于上述互聯(lián)網(wǎng)醫(yī)院服務(wù)器的直播房間標(biāo)識(shí)信息并將該直播房間標(biāo)識(shí)信息作為參數(shù)加入視頻服務(wù)器之前,還可以包括:消息推送服務(wù)器與上述iptv客戶端建立連接;上述消息推送服務(wù)器根據(jù)上述iptv客戶端的用戶類(lèi)型以及直播房間標(biāo)識(shí)信息為上述iptv客戶端生成用戶唯一標(biāo)識(shí)信息,并將上述用戶唯一標(biāo)識(shí)信息、上述用戶類(lèi)型、上述iptv客戶端與上述消息推送服務(wù)器的連接存活時(shí)間進(jìn)行綁定。
在優(yōu)選實(shí)施過(guò)程中,當(dāng)用戶加入直播前,iptv客戶端向消息推送服務(wù)器(ms)發(fā)送激活用戶的請(qǐng)求,其中,該請(qǐng)求中攜帶有用戶類(lèi)型以及直播房間標(biāo)識(shí)信息參數(shù),ms與上述iptv客戶端建立連接,ms生成key(用戶唯一標(biāo)識(shí)信息)然后綁定key、用戶類(lèi)型、直播房間標(biāo)識(shí)信息(直播房間id)、用戶存活時(shí)間與這個(gè)連接對(duì)象,用key來(lái)唯一標(biāo)識(shí)這條連接的屬性;在ms服務(wù)器上,key就代表這個(gè)客戶端用戶。
優(yōu)選地,上述方法還包括:上述消息推送服務(wù)器根據(jù)上述直播房間標(biāo)識(shí)信息創(chuàng)建虛擬房間;上述消息推送服務(wù)器將對(duì)應(yīng)同一個(gè)虛擬房間的用戶唯一標(biāo)識(shí)信息插入到該虛擬房間對(duì)應(yīng)的用戶隊(duì)列中。
在優(yōu)選實(shí)施過(guò)程中,ms服務(wù)器會(huì)根據(jù)直播房間標(biāo)識(shí)信息(直播房間id,liveid)來(lái)創(chuàng)建虛擬房間,把帶有相同liveid的用戶插入以liveid為房間號(hào)的用戶隊(duì)列里,方便ms服務(wù)器對(duì)用戶進(jìn)行管理。
優(yōu)選地,在上述消息推送服務(wù)器與上述iptv客戶端建立連接時(shí),還可以包括:上述消息推送服務(wù)器與醫(yī)生客戶端建立連接;上述消息推送服務(wù)器接收上述iptv客戶端和上述醫(yī)生客戶端定時(shí)發(fā)送的存活信息;上述消息推送服務(wù)器根據(jù)上述存活信息中攜帶的直播房間標(biāo)識(shí)信息確定上述iptv客戶端和上述醫(yī)生客戶端對(duì)應(yīng)的用戶所在的房間,使用上述存活信息中攜帶的用戶唯一標(biāo)識(shí)信息查找到上述對(duì)應(yīng)的用戶,更新上述對(duì)應(yīng)的用戶的存活時(shí)間。
當(dāng)iptv客戶端、醫(yī)生客戶端分別與ms服務(wù)器連接后,iptv客戶端、醫(yī)生客戶端會(huì)定時(shí)向ms服務(wù)器發(fā)送存活信息(alive存活信息)。ms服務(wù)器接收到用戶發(fā)過(guò)來(lái)的存活消息后,會(huì)根據(jù)liveid來(lái)查找到用戶所在的房間,再通過(guò)key來(lái)找到用戶,然后更新用戶的存活時(shí)間。
優(yōu)選地,在上述消息推送服務(wù)器與上述iptv客戶端和醫(yī)生客戶端建立連接之后,還包括以下至少之一:上述消息推送服務(wù)器每隔預(yù)定時(shí)間判斷上述連接是否超時(shí),在上述連接超時(shí)的情況下,上述消息推送服務(wù)器將上述iptv客戶端和/或上述醫(yī)生客戶端對(duì)應(yīng)的用戶從該用戶對(duì)應(yīng)的用戶隊(duì)列中刪除;上述iptv客戶端和上述醫(yī)生客戶端每隔預(yù)定時(shí)間判斷上述連接是否超時(shí),在上述消息推送服務(wù)器與上述iptv客戶端的連接超時(shí)的情況下,上述iptv客戶端對(duì)該客戶端對(duì)應(yīng)的用戶進(jìn)行提示,在上述消息推送服務(wù)器與上述醫(yī)生客戶端的連接超時(shí)的情況下,上述醫(yī)生客戶端對(duì)該客戶端對(duì)應(yīng)的用戶進(jìn)行提示。
在優(yōu)選實(shí)施過(guò)程中,消息推送服務(wù)器定時(shí)去判斷每個(gè)連接是否超時(shí)(例如,超時(shí)時(shí)間為1分鐘),如果在一定時(shí)間內(nèi)(例如,1分鐘)接收不到iptv客戶端或者醫(yī)生客戶端的存活alive包,就確定這個(gè)客戶端與消息推送服務(wù)器斷開(kāi)連接,消息推送服務(wù)器把該客戶端對(duì)應(yīng)的用戶移除,之后該用戶再也接收不到消息推送。
同理,iptv客戶端和上述醫(yī)生客戶端也會(huì)定時(shí)去判斷與消息推送服務(wù)器相應(yīng)的alive是否超時(shí),如果超時(shí),就確定與消息推送服務(wù)器斷開(kāi)連接,然后做出相應(yīng)的提示信息來(lái)告知用戶。
優(yōu)選地,在上述視頻服務(wù)器將上述醫(yī)生標(biāo)識(shí)信息對(duì)應(yīng)的直播視頻數(shù)據(jù)轉(zhuǎn)發(fā)至上述iptv客戶端實(shí)現(xiàn)視頻直播功能之后,還包括:當(dāng)醫(yī)生客戶端對(duì)應(yīng)的用戶需要結(jié)束直播時(shí),上述消息推送服務(wù)器接收來(lái)自于上述醫(yī)生客戶端的直播結(jié)束消息,其中,上述直播結(jié)束消息中攜帶有直播房間標(biāo)識(shí)信息,上述消息推送服務(wù)器將上述直播結(jié)束消息推送至上述直播房間標(biāo)識(shí)信息對(duì)應(yīng)的房間內(nèi)所有iptv客戶端;當(dāng)iptv客戶端對(duì)應(yīng)的用戶需要退出直播時(shí),上述消息推送服務(wù)器接收來(lái)自于該iptv客戶端的退出直播消息,其中,上述退出直播消息中攜帶有直播房間標(biāo)識(shí)信息,上述消息推送服務(wù)器將上述退出直播消息推送至上述直播房間標(biāo)識(shí)信息對(duì)應(yīng)的房間內(nèi)其他iptv客戶端及上述醫(yī)生客戶端。
在優(yōu)選實(shí)施過(guò)程中,當(dāng)醫(yī)生主動(dòng)結(jié)束直播時(shí),醫(yī)生客戶端可以通過(guò)ws協(xié)議把消息發(fā)送到消息推送服務(wù)器(ms服務(wù)器),然后ms服務(wù)器再根據(jù)直播房間標(biāo)識(shí)信息(例如,直播房間id)把消息推送給這個(gè)房間里的所有用戶,通知他們直播醫(yī)生已經(jīng)結(jié)束直播。如果是iptv客戶端的用戶a退出,該客戶端會(huì)通過(guò)ws協(xié)議把消息發(fā)送到ms服務(wù)器,然后ms服務(wù)器再根據(jù)直播房間id把消息推送給這個(gè)房間里的所有用戶與醫(yī)生,告知用戶a退出。
與傳統(tǒng)使用http方式進(jìn)行輪詢與長(zhǎng)輪詢方式進(jìn)行消息傳輸相比,本發(fā)明實(shí)施例可以使用websocket協(xié)議搭建消息推送服務(wù)器(ms),websocket是一種跨平臺(tái)的協(xié)議,使用websocket協(xié)議能夠及時(shí)的察覺(jué)客戶端連接狀態(tài),消息推送服務(wù)器不再被動(dòng)的接收到請(qǐng)求之后才返回?cái)?shù)據(jù),而是在有新數(shù)據(jù)時(shí)就主動(dòng)推送給客戶端,接收消息與發(fā)送消息更及時(shí),保證了消息傳輸?shù)膶?shí)時(shí)性與可靠性。
以下結(jié)合圖2和圖3進(jìn)一步描述上述優(yōu)選實(shí)施方式。
圖2是根據(jù)本發(fā)明優(yōu)選實(shí)施例的基于iptv的視頻直播系統(tǒng)的架構(gòu)圖。如圖2所示,該基于iptv的視頻直播系統(tǒng)包括:iptv客戶端、消息推送服務(wù)器(ms)、醫(yī)生客戶端、視頻直播管理器(vim)、互聯(lián)網(wǎng)醫(yī)院服務(wù)器、以及視頻服務(wù)器(avs),其中,iptv客戶端分別與視頻直播管理器和消息推送服務(wù)器(ms)相連接,視頻直播管理器(vim)還與互聯(lián)網(wǎng)醫(yī)院服務(wù)器和視頻服務(wù)器(avs)相連接,消息推送服務(wù)器(ms)還與醫(yī)生客戶端相連接,視頻服務(wù)器(avs)還與醫(yī)生客戶端相連接。
在優(yōu)選實(shí)施過(guò)程中,iptv客戶端,通過(guò)兩個(gè)線程來(lái)處理,主線程用于與用戶進(jìn)行人機(jī)交互,處理使用的需求與點(diǎn)擊事件;子線程用于與vlm進(jìn)行交互,向vlm下發(fā)消息通知以及接收vlm返回的操作結(jié)果。
視頻服務(wù)器,通過(guò)兩個(gè)線程來(lái)處理,分別是主線程與子線程。主線程負(fù)責(zé)處理用戶加入時(shí),根據(jù)問(wèn)診id來(lái)創(chuàng)建視頻房間,然后把用戶加入房間;如果用戶加入時(shí),問(wèn)診id對(duì)應(yīng)的視頻房間已經(jīng)存在,就直接加入。子線程負(fù)責(zé)對(duì)房間里用戶視頻進(jìn)行轉(zhuǎn)發(fā)。
互聯(lián)網(wǎng)醫(yī)生客戶端,用于醫(yī)生登錄以及進(jìn)行處理視頻直播的相關(guān)操作。
互聯(lián)網(wǎng)醫(yī)院服務(wù)器(his),主要負(fù)責(zé)維護(hù)系統(tǒng)資源,并接收來(lái)自vim和互聯(lián)網(wǎng)醫(yī)生客戶端的交互。當(dāng)有用戶請(qǐng)求視頻問(wèn)診時(shí),會(huì)分配一個(gè)問(wèn)診id(唯一值)給請(qǐng)求者,讓其攜帶問(wèn)診id加入視頻服務(wù)器;當(dāng)有用戶退出時(shí),客戶端會(huì)發(fā)信息給his,然后互聯(lián)網(wǎng)醫(yī)院服務(wù)器再通知到這個(gè)房間里的其它用戶。
消息推送服務(wù)器(ms服務(wù)器),接收客戶端的連接并推送消息;當(dāng)有客戶端加入時(shí),會(huì)根據(jù)客戶端攜帶的直播房間編號(hào)(liveid),生成相應(yīng)的虛擬視頻房間(房間號(hào)是liveid),方便消息服務(wù)器對(duì)用戶的管理,以及消息推送。
視頻直播管理器(vlm):負(fù)責(zé)接收來(lái)自iptv客戶端以及互聯(lián)網(wǎng)醫(yī)院服務(wù)器(his)的信令,實(shí)現(xiàn)一系列的協(xié)助握手以信令交互,最終實(shí)現(xiàn)實(shí)時(shí)視頻直播。
圖3是根據(jù)本發(fā)明優(yōu)選實(shí)施例的基于iptv的視頻直播方法的時(shí)序圖。如圖3所示,該基于iptv的視頻直播方法包括:
步驟s301:iptv客戶端向中心web服務(wù)器(cws)發(fā)送查詢直播簡(jiǎn)介信息的請(qǐng)求。
步驟s303:cws查詢直播簡(jiǎn)介信息。
步驟s305:cws向iptv客戶端返回醫(yī)生直播信息,其中,該醫(yī)生直播信息包括醫(yī)生標(biāo)識(shí)信息。
步驟s307:iptv客戶端向消息推送服務(wù)器(ms)發(fā)送激活用戶請(qǐng)求。
步驟s309:ms生成為iptv客戶端用戶生成用戶唯一標(biāo)識(shí)信息。
步驟s311:ms將上述用戶唯一標(biāo)識(shí)信息返回至iptv客戶端。
步驟s313:iptv客戶端向互聯(lián)網(wǎng)醫(yī)院服務(wù)器(his)發(fā)送加入直播請(qǐng)求用于請(qǐng)求醫(yī)生直播房間標(biāo)識(shí)信息(例如,直播房間id),其中,該請(qǐng)求中攜帶有用戶id、用戶唯一標(biāo)識(shí)信息(key)、醫(yī)生id。
步驟s315:his查詢醫(yī)生直播房間標(biāo)識(shí)信息。
步驟s317:his返回狀態(tài)信息,例如,如果醫(yī)生處于不在直播狀態(tài),返回直播狀態(tài)值,1為結(jié)束直播,2為未直播。如果醫(yī)生處于直播狀態(tài),返回當(dāng)前直播的直播房間id以及視頻服務(wù)器url地址信息、和消息推送服務(wù)器url地址信息。
步驟s319:iptv客戶端加入視頻服務(wù)器。
步驟s321:視頻服務(wù)器將醫(yī)生客戶端也加入,使視頻服務(wù)器將該醫(yī)生客戶端的直播視頻數(shù)據(jù)轉(zhuǎn)發(fā)至上述iptv客戶端實(shí)現(xiàn)視頻直播功能。
根據(jù)本發(fā)明的另一實(shí)施例,還提供了一種基于iptv的視頻直播裝置。
圖4是根據(jù)本發(fā)明實(shí)施例的基于iptv的視頻直播裝置的結(jié)構(gòu)框圖。如圖4所示,該基于iptv的視頻直播裝置包括:第一接收模塊40,用于接收來(lái)自于iptv客戶端的視頻直播請(qǐng)求;獲取推送模塊42,用于從互聯(lián)網(wǎng)醫(yī)院服務(wù)器獲取當(dāng)前節(jié)目信息列表,并推送至上述iptv客戶端;發(fā)送模塊44,用于將上述iptv客戶端的用戶標(biāo)識(shí)信息以及用戶選擇的醫(yī)生標(biāo)識(shí)信息發(fā)送至上述互聯(lián)網(wǎng)醫(yī)院服務(wù)器;第二接收模塊46,用于接收來(lái)自于上述互聯(lián)網(wǎng)醫(yī)院服務(wù)器的直播房間標(biāo)識(shí)信息并將該直播房間標(biāo)識(shí)信息作為參數(shù)加入視頻服務(wù)器,以使上述視頻服務(wù)器將上述醫(yī)生標(biāo)識(shí)信息對(duì)應(yīng)的直播視頻數(shù)據(jù)轉(zhuǎn)發(fā)至上述iptv客戶端實(shí)現(xiàn)視頻直播功能。
在iptv電視機(jī)頂盒設(shè)置視頻直播裝置,負(fù)責(zé)接收來(lái)自客戶端以及互聯(lián)網(wǎng)醫(yī)院服務(wù)器的信令,實(shí)現(xiàn)一系列的協(xié)助握手以信令交互,最終實(shí)現(xiàn)實(shí)時(shí)視頻直播功能。通過(guò)該裝置中模塊處理各服務(wù)器間的視頻問(wèn)診業(yè)務(wù)邏輯,以及狀態(tài)控制,iptv客戶端只要關(guān)心我要做什么,而不用關(guān)心怎么做,這樣減輕了iptv客戶端的業(yè)務(wù)邏輯處理,降低iptv客戶端的壓力,也增強(qiáng)了iptv客戶端的穩(wěn)定性。
根據(jù)本發(fā)明實(shí)施例,還提供了一種基于iptv的視頻直播系統(tǒng)。
圖5是根據(jù)本發(fā)明實(shí)施例的基于iptv的視頻直播系統(tǒng)的結(jié)構(gòu)框圖。如圖5所示,該基于iptv的視頻直播系統(tǒng)包括:視頻直播服務(wù)器50,互聯(lián)網(wǎng)醫(yī)院服務(wù)器52、iptv客戶端54、以及視頻服務(wù)器56;其中,上述視頻直播服務(wù)器50,分別與上述互聯(lián)網(wǎng)醫(yī)院服務(wù)器52、上述iptv客戶端54和上述視頻服務(wù)器56相連接,用于接收來(lái)自于iptv客戶端54的視頻直播請(qǐng)求,用于從互聯(lián)網(wǎng)醫(yī)院服務(wù)器52獲取當(dāng)前節(jié)目信息列表,并推送至上述iptv客戶端54;將上述iptv客戶端54的用戶標(biāo)識(shí)信息以及用戶選擇的醫(yī)生標(biāo)識(shí)信息發(fā)送至上述互聯(lián)網(wǎng)醫(yī)院服務(wù)器52,接收來(lái)自于上述互聯(lián)網(wǎng)醫(yī)院服務(wù)器的直播房間標(biāo)識(shí)信息并將該直播房間標(biāo)識(shí)信息作為參數(shù)加入視頻服務(wù)器56,以使上述視頻服務(wù)器56將上述醫(yī)生標(biāo)識(shí)信息對(duì)應(yīng)的直播視頻數(shù)據(jù)轉(zhuǎn)發(fā)至上述iptv客戶端54實(shí)現(xiàn)視頻直播功能。
優(yōu)選地,如圖6所示,該視頻直播系統(tǒng)還可以包括:消息推送服務(wù)器58,其中,上述消息推送服務(wù)器,用于與上述iptv客戶端建立連接,根據(jù)上述iptv客戶端的用戶類(lèi)型以及直播房間標(biāo)識(shí)信息為上述iptv客戶端生成用戶唯一標(biāo)識(shí)信息,并將上述用戶唯一標(biāo)識(shí)信息、上述用戶類(lèi)型、上述iptv客戶端與上述消息推送服務(wù)器的連接存活時(shí)間進(jìn)行綁定,根據(jù)上述直播房間標(biāo)識(shí)信息創(chuàng)建虛擬房間,上述消息推送服務(wù)器將對(duì)應(yīng)同一個(gè)虛擬房間的用戶唯一標(biāo)識(shí)信息插入到該虛擬房間對(duì)應(yīng)的用戶隊(duì)列中。
優(yōu)選地,如圖6所示,該視頻直播系統(tǒng)還可以包括:醫(yī)生客戶端60,其中,上述消息推送服務(wù)器58,還用于與上述醫(yī)生客戶端60建立連接,接收上述iptv客戶端和上述醫(yī)生客戶端定時(shí)發(fā)送的存活信息,根據(jù)上述存活信息中攜帶的直播房間標(biāo)識(shí)信息確定上述iptv客戶端和上述醫(yī)生客戶端對(duì)應(yīng)的用戶所在的房間,使用上述存活信息中攜帶的用戶唯一標(biāo)識(shí)信息查找到上述對(duì)應(yīng)的用戶,更新上述對(duì)應(yīng)的用戶的存活時(shí)間。
優(yōu)選地,上述消息推送服務(wù)器58,還用于每隔預(yù)定時(shí)間判斷上述連接是否超時(shí),在上述連接超時(shí)的情況下,將上述iptv客戶端和/或上述醫(yī)生客戶端對(duì)應(yīng)的用戶從該用戶對(duì)應(yīng)的用戶隊(duì)列中刪除;上述iptv客戶端54,還用于每隔預(yù)定時(shí)間判斷上述連接是否超時(shí),在上述消息推送服務(wù)器58與上述iptv客戶端54的連接超時(shí)的情況下,對(duì)該客戶端對(duì)應(yīng)的用戶進(jìn)行提示;上述醫(yī)生客戶端60,還用于每隔預(yù)定時(shí)間判斷上述連接是否超時(shí),在上述消息推送服務(wù)器與上述醫(yī)生客戶端的連接超時(shí)的情況下,對(duì)該客戶端對(duì)應(yīng)的用戶進(jìn)行提示。
優(yōu)選地,上述消息推送服務(wù)器58,還用于在醫(yī)生客戶端對(duì)應(yīng)的用戶需要結(jié)束直播時(shí),接收來(lái)自于上述醫(yī)生客戶端的攜帶有直播房間標(biāo)識(shí)信息的直播結(jié)束消息,將上述直播結(jié)束消息推送至上述直播房間標(biāo)識(shí)信息對(duì)應(yīng)的房間內(nèi)所有iptv客戶端;還用于在iptv客戶端對(duì)應(yīng)的用戶需要退出直播時(shí),接收來(lái)自于該iptv客戶端的攜帶有直播房間標(biāo)識(shí)信息的退出直播消息,將上述退出直播消息推送至上述直播房間標(biāo)識(shí)信息對(duì)應(yīng)的房間內(nèi)其他iptv客戶端及上述醫(yī)生客戶端。
需要說(shuō)明的是,上述裝置、系統(tǒng)中各模塊相互結(jié)合的優(yōu)選工作方式可以參見(jiàn)圖1至圖3的描述,此處不再贅述。
綜上所述,借助本發(fā)明提供的上述實(shí)施例,通過(guò)建立視頻直播管理器與websocket協(xié)議實(shí)時(shí)消息傳輸方案,能夠很靈活的實(shí)現(xiàn)通過(guò)iptv系統(tǒng)進(jìn)行實(shí)時(shí)視頻直播的技術(shù)方案。對(duì)用戶來(lái)說(shuō),只需要選中正在播出的直播節(jié)目并進(jìn)入視頻直播,就可以觀看這期節(jié)目的醫(yī)生正在進(jìn)行視頻直播,操作方便。對(duì)于消息推送服務(wù)器設(shè)計(jì),能夠很好的協(xié)調(diào)互聯(lián)網(wǎng)醫(yī)院服務(wù)器、互聯(lián)網(wǎng)醫(yī)院醫(yī)生客戶端、視頻服務(wù)器、iptv電視機(jī)頂盒上的app進(jìn)行工作,實(shí)現(xiàn)一系列的協(xié)助握手以信令交互,最終實(shí)現(xiàn)實(shí)時(shí)視頻直播。當(dāng)有iptv客戶端用戶加入觀看視頻或退出視頻,消息均能及時(shí)通知來(lái)醫(yī)生端。當(dāng)醫(yī)生客戶端結(jié)束直播時(shí),消息同樣及時(shí)的通知到iptv客戶端。
以上公開(kāi)的僅為本發(fā)明的幾個(gè)具體實(shí)施例,但是,本發(fā)明并非局限于此,任何本領(lǐng)域的技術(shù)人員能思之的變化都應(yīng)落入本發(fā)明的保護(hù)范圍。