一種基于心跳模塊的微信遠(yuǎn)程推送機(jī)頂盒節(jié)目源的實(shí)現(xiàn)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及微信遠(yuǎn)程推送機(jī)頂盒節(jié)目源技術(shù),具體涉及一種基于心跳模塊的微信遠(yuǎn)程推送機(jī)頂盒節(jié)目源的實(shí)現(xiàn)方法。
【背景技術(shù)】
[0002]隨著嵌入式技術(shù)的快速發(fā)展,基于智能機(jī)頂盒的業(yè)務(wù)功能越來(lái)越多,但對(duì)于老年人和小孩來(lái)說(shuō),操作這些功能比較困難,有時(shí)需要家人協(xié)助,比如,老人或者小孩在家里想要觀看某個(gè)新電視劇或者電影,但不知道如何通過(guò)遙控器搜索到該節(jié)目源,這就需要不在身邊的家人通過(guò)一定的通信方式為老人或者小孩遠(yuǎn)程推送該片源給機(jī)頂盒播放。
[0003]微信作為一種為智能終端提供即時(shí)通訊服務(wù)的免費(fèi)通信工具,已經(jīng)得到廣泛應(yīng)用和推廣,現(xiàn)在幾乎每臺(tái)智能移動(dòng)終端用戶都安裝有微信程序,同時(shí),由于微信支持跨通信運(yùn)營(yíng)商、跨操作系統(tǒng)平臺(tái)網(wǎng)絡(luò)快速免費(fèi)通信,所以通過(guò)微信將片源遠(yuǎn)程推送給機(jī)頂盒播放是很好的選擇。要使微信用戶能夠?qū)⑵催h(yuǎn)程推送給機(jī)頂盒播放,必須使用戶發(fā)的微信推送消息能夠到達(dá)機(jī)頂盒,而目前機(jī)頂盒大都安裝在用戶家庭路由器之后,IP地址為私網(wǎng)地址,因此要想將推送消息發(fā)送到機(jī)頂盒就需要進(jìn)行私網(wǎng)穿透。目前,市場(chǎng)上能夠微信遠(yuǎn)程推送片源播放的機(jī)頂盒的實(shí)現(xiàn)方式主要是以下三種:
[0004](I)、基于DDNS動(dòng)態(tài)域名方式,原理是將機(jī)頂盒的動(dòng)態(tài)外網(wǎng)IP地址映射到一個(gè)固定的域名解析服務(wù)上,當(dāng)機(jī)頂盒的外網(wǎng)IP變化時(shí)候,機(jī)頂盒的客戶端程序就會(huì)把該IP地址傳送給位于服務(wù)商主機(jī)上的服務(wù)器程序,服務(wù)器程序負(fù)責(zé)提供DNS服務(wù)并實(shí)現(xiàn)動(dòng)態(tài)域名解析,通過(guò)設(shè)置家庭網(wǎng)關(guān)端口映射,使處于外網(wǎng)的其他用戶可以直接使用域名訪問(wèn)該機(jī)頂盒設(shè)備;該方案的實(shí)現(xiàn)需要DNS服務(wù)商支持,作為商業(yè)用途使用,每臺(tái)機(jī)頂盒都需要支付一定的動(dòng)態(tài)域名服務(wù)費(fèi)用,當(dāng)機(jī)頂盒數(shù)量增加時(shí)候,該費(fèi)用也將快速增長(zhǎng)。
[0005](2), STUN CLIENT/SERVER (客戶機(jī)與服務(wù)器結(jié)構(gòu))的方式,它屬于內(nèi)網(wǎng)NAT穿透方式,采用UDP報(bào)文交互方式探測(cè)NAT的IP和端口,處于內(nèi)網(wǎng)的機(jī)頂盒上運(yùn)行STUN客戶端,它與公網(wǎng)上的STUN SERVER配合,通過(guò)一系列STUN協(xié)議的UDP報(bào)文交互,使得SERVER(服務(wù)器)獲取機(jī)頂盒的外網(wǎng)IP、端口以及NAT類型信息,有了這些信息,處于外網(wǎng)的用戶就可以與該機(jī)頂盒相互通信;該方案雖然能夠?qū)Χ喾NNAT類型進(jìn)行探測(cè),功能強(qiáng)大,但部署較為復(fù)雜,同時(shí)它和機(jī)頂盒軟件也需要定制接口開(kāi)發(fā)。
[0006](3)、TCP常連接方式,TCP連接的特點(diǎn)為只要該TCP連接保持在線,機(jī)頂盒主動(dòng)從內(nèi)網(wǎng)連接到外網(wǎng)的業(yè)務(wù)服務(wù)器就可以通過(guò)該連接與機(jī)頂盒通信,因此可以在機(jī)頂盒啟動(dòng)后建立一條到業(yè)務(wù)服務(wù)器的TCP連接,該連接在機(jī)頂盒開(kāi)機(jī)時(shí)候一直保持在線,以解決業(yè)務(wù)服務(wù)器對(duì)機(jī)頂盒的私網(wǎng)穿透問(wèn)題;該方案對(duì)業(yè)務(wù)服務(wù)器性能要求很高,隨著連接設(shè)備的增加,將會(huì)導(dǎo)致服務(wù)器性能的開(kāi)銷線性增長(zhǎng)。
[0007]綜上所述,目前通過(guò)微信向機(jī)頂盒遠(yuǎn)程推送節(jié)目源的實(shí)現(xiàn)方式均存在成本增加、不易實(shí)現(xiàn)、性能穩(wěn)定性差的缺點(diǎn),因此迫切需要一種成本較低、簡(jiǎn)單易行、性能穩(wěn)定的實(shí)現(xiàn)方法。
【發(fā)明內(nèi)容】
[0008]本發(fā)明所要解決的技術(shù)問(wèn)題是現(xiàn)有通過(guò)微信向機(jī)頂盒遠(yuǎn)程推送節(jié)目源的實(shí)現(xiàn)方式均存在成本增加、不易實(shí)現(xiàn)、性能穩(wěn)定性差的的問(wèn)題。
[0009]為了解決上述技術(shù)問(wèn)題,本發(fā)明所采用的技術(shù)方案是提供一種基于心跳模塊的微信遠(yuǎn)程推送機(jī)頂盒節(jié)目源的實(shí)現(xiàn)方法:一種基于心跳模塊的微信遠(yuǎn)程推送機(jī)頂盒節(jié)目源的實(shí)現(xiàn)方法,包括以下步驟:
[0010]步驟10、在業(yè)務(wù)服務(wù)器與其所管理的機(jī)頂盒之間設(shè)置心跳服務(wù)模塊;
[0011]步驟20、心跳服務(wù)模塊根據(jù)機(jī)頂盒以HTTP協(xié)議周期性發(fā)送的心跳消息,建立或更新該機(jī)頂盒在內(nèi)存數(shù)據(jù)庫(kù)的數(shù)據(jù)信息;
[0012]步驟30、智能終端用戶通過(guò)微信獲取內(nèi)存數(shù)據(jù)庫(kù)中目的機(jī)頂盒的數(shù)據(jù)信息,再根據(jù)該數(shù)據(jù)信息通過(guò)業(yè)務(wù)服務(wù)器發(fā)送推送節(jié)目源命令到心跳服務(wù)模塊,并在心跳服務(wù)模塊保存該命令;
[0013]步驟40、心跳服務(wù)模塊在對(duì)目的機(jī)頂盒下一次心跳消息進(jìn)行心跳應(yīng)答時(shí),在心跳應(yīng)答消息中附加推送節(jié)目源命令發(fā)送給目的機(jī)頂盒;
[0014]步驟50、目的機(jī)頂盒執(zhí)行推送節(jié)目源命令,并在下一次心跳消息中附加命令執(zhí)行狀態(tài),完成微信遠(yuǎn)程推送機(jī)頂盒節(jié)目源。
[0015]在上述方法中,心跳服務(wù)模塊部署方式是根據(jù)業(yè)務(wù)服務(wù)器管理的機(jī)頂盒數(shù)量調(diào)整的。
[0016]在上述方法中,心跳消息內(nèi)容包括:機(jī)頂盒本機(jī)地址、MAC地址、發(fā)送時(shí)間、命令執(zhí)行狀態(tài)字段;
[0017]機(jī)頂盒在內(nèi)存數(shù)據(jù)庫(kù)的數(shù)據(jù)信息包括:從HTTP協(xié)議中解析的機(jī)頂盒的外網(wǎng)地址、外網(wǎng)端口 ;在線狀態(tài);周期性發(fā)送的心跳消息內(nèi)容。
[0018]在上述方法中,步驟30具體包括以下按步驟:
[0019]步驟31、用戶通過(guò)微信發(fā)送獲取節(jié)目源命令到業(yè)務(wù)服務(wù)器,業(yè)務(wù)服務(wù)器從節(jié)目源平臺(tái)獲取對(duì)應(yīng)節(jié)目源數(shù)據(jù),并返回給微信端;
[0020]步驟32、用戶通過(guò)微信發(fā)送獲取目的機(jī)頂盒數(shù)據(jù)信息命令到業(yè)務(wù)服務(wù)器,業(yè)務(wù)服務(wù)器從內(nèi)存數(shù)據(jù)庫(kù)獲取目的機(jī)頂盒的數(shù)據(jù)信息,并返回給微信端;
[0021]步驟33、根據(jù)獲取的目的機(jī)頂盒的數(shù)據(jù)信息判定目的機(jī)頂盒是否為在線狀態(tài),如果在線,執(zhí)行步驟34 ;否則,執(zhí)行步驟36 ;
[0022]步驟34、用戶通過(guò)微信發(fā)送攜帶目的機(jī)頂盒的數(shù)據(jù)信息和節(jié)目源數(shù)據(jù)的推送節(jié)目源命令到業(yè)務(wù)服務(wù)器;
[0023]步驟35、業(yè)務(wù)服務(wù)器將推送節(jié)目源命令發(fā)給心跳服務(wù)模塊,并在內(nèi)存數(shù)據(jù)庫(kù)中保存;
[0024]步驟36、結(jié)束程序。
[0025]在上述方法中,步驟31的實(shí)現(xiàn)方式為微信端執(zhí)行業(yè)務(wù)服務(wù)器上的javascript代碼,直接調(diào)用節(jié)目源平臺(tái)的接口得到節(jié)目源數(shù)據(jù)。
[0026]在上述方法中,機(jī)頂盒發(fā)送心跳消息的心跳周期根據(jù)微信用戶發(fā)送命令的頻度自動(dòng)調(diào)整,機(jī)頂盒自動(dòng)調(diào)整心跳周期策略為:
[0027]當(dāng)機(jī)頂盒接收到附加推送節(jié)目源命令的心跳應(yīng)答消息時(shí),加快心跳消息發(fā)送頻率;如果在預(yù)設(shè)時(shí)間內(nèi)一直沒(méi)有接收到附加推送節(jié)目源命令的心跳消息,恢復(fù)心跳消息正常發(fā)送頻率。
[0028]本發(fā)明僅通過(guò)在業(yè)務(wù)服務(wù)器和它所管理的機(jī)頂盒之間增加一個(gè)心跳服務(wù)模塊來(lái)實(shí)現(xiàn)通過(guò)微信向機(jī)頂盒遠(yuǎn)程推送節(jié)目源,不僅結(jié)構(gòu)簡(jiǎn)單、易于實(shí)現(xiàn),而且由于心跳服務(wù)模塊與機(jī)頂盒之間通信的心跳消息與心跳應(yīng)答消息報(bào)文比較精簡(jiǎn),所以占用網(wǎng)絡(luò)帶寬和內(nèi)存少;同時(shí)在本發(fā)明中機(jī)頂盒還能夠根據(jù)命令交互情況實(shí)時(shí)調(diào)整心跳消息發(fā)送周期,即在有命令執(zhí)行時(shí)增加頻度,無(wú)命令時(shí)恢復(fù)正常周期,這樣不僅減少進(jìn)行節(jié)目源推送操作用戶等待時(shí)延,在無(wú)節(jié)目源推送操作時(shí)也能減少對(duì)網(wǎng)絡(luò)帶寬占用和對(duì)機(jī)頂盒和心跳模塊的性能消耗,在不增加成本的情況下,進(jìn)一步提高性能穩(wěn)定性;而心跳服務(wù)模塊實(shí)現(xiàn)也較為簡(jiǎn)單,采用HTTP通信協(xié)議,開(kāi)發(fā)成本和維護(hù)成本大為降低。
【附圖說(shuō)明】
[0029]圖1為本發(fā)明提供的一種基于心跳模塊的微信遠(yuǎn)程推送機(jī)頂盒節(jié)目源的實(shí)現(xiàn)方法的軟件結(jié)構(gòu)圖;
[0030]圖2為本發(fā)明提供的一種基于心跳模塊的微信遠(yuǎn)程推送機(jī)頂盒節(jié)目源的實(shí)現(xiàn)方法的流程圖;
[0031 ] 圖3為本發(fā)明中步驟30的流程圖;
[0032]圖4為本發(fā)明中各模塊之間的信息傳遞情況示意圖。
【具體實(shí)施方式】
[0033]針對(duì)現(xiàn)有微信遠(yuǎn)程推送節(jié)目源實(shí)現(xiàn)技術(shù)中存在的不足,本發(fā)明通過(guò)在業(yè)務(wù)服務(wù)器和它所管理的機(jī)頂盒之間增加一個(gè)心跳服務(wù)模塊來(lái)實(shí)現(xiàn)通過(guò)微信向機(jī)頂盒遠(yuǎn)程推送節(jié)目源,心跳服務(wù)模塊與機(jī)頂盒之間通過(guò)機(jī)頂盒周期性發(fā)送的心跳消息和心跳服務(wù)模塊返回機(jī)頂盒的心跳應(yīng)答實(shí)現(xiàn)通信,并根據(jù)心跳消息更新對(duì)應(yīng)機(jī)頂盒在心跳服務(wù)模塊內(nèi)的內(nèi)存數(shù)據(jù)庫(kù)中數(shù)據(jù)信息;微信端通過(guò)業(yè)務(wù)服務(wù)器獲取或更新內(nèi)存數(shù)據(jù)庫(kù)中數(shù)據(jù)信息實(shí)現(xiàn)與心跳服務(wù)模塊間的通信。
[0034]下面結(jié)合說(shuō)明書附圖和具體實(shí)施例對(duì)本發(fā)明做出詳細(xì)的說(shuō)明。
[0035]如圖1、2所示,本發(fā)明提供的一種基于心跳模塊的微信遠(yuǎn)程推送機(jī)頂盒節(jié)目源的實(shí)現(xiàn)方法,包括以下步驟:
[0036]步驟10、在業(yè)務(wù)服務(wù)器與其所管理的機(jī)頂盒之間設(shè)置心跳服務(wù)模塊;
[0037]在本發(fā)明中,心跳服務(wù)模塊運(yùn)行在WEB SERVER中,既可以單獨(dú)運(yùn)行在一臺(tái)服務(wù)器上,也可以集成在業(yè)務(wù)服務(wù)器中,其部署的方式是根據(jù)業(yè)務(wù)服務(wù)器管理的機(jī)頂盒數(shù)量調(diào)整的,當(dāng)機(jī)頂盒數(shù)量較少時(shí),心跳服務(wù)模塊直接集成在業(yè)務(wù)服務(wù)器中;當(dāng)數(shù)量較多時(shí),心跳服務(wù)模塊將單獨(dú)部署在一臺(tái)服務(wù)器中運(yùn)行;當(dāng)數(shù)量更多時(shí),也可以在多個(gè)服務(wù)器上分別設(shè)置心跳服務(wù)模塊。
[0038]步驟20、機(jī)頂盒啟動(dòng)后,機(jī)頂盒以HTTP