為機(jī)頂盒增加P2P和郵件功能
來源:數(shù)字電視中文網(wǎng) 編輯:數(shù)字音視工程 2009-03-30 00:00:00 加入收藏
筆者很早前從泰信網(wǎng)站上下載了一個(gè)機(jī)頂盒操作系統(tǒng)的軟件開發(fā)包,并獲得了一個(gè)機(jī)頂盒。經(jīng)過幾天時(shí)間的熟悉,正如泰信所宣傳的那樣,終于可以獨(dú)立在機(jī)頂盒上開發(fā)軟件了,都說數(shù)字電視技術(shù)比較封閉,沒想到泰信的軟硬件分離平臺(tái)那么開放,還有示例代碼。
泰信公開了比較完善的網(wǎng)絡(luò)接口,實(shí)現(xiàn)TCP/IP、UDP、PPPOE等網(wǎng)絡(luò)協(xié)議。并屏蔽了比較復(fù)雜的協(xié)議棧部分。僅過一段時(shí)間的開發(fā)測試,筆者已經(jīng)在這個(gè)API上實(shí)現(xiàn)了P2P網(wǎng)絡(luò)協(xié)議、電子郵件客戶端功能。在這些協(xié)議棧上,可以很容易地完成各種網(wǎng)絡(luò)功能。本人在這個(gè)平臺(tái)上實(shí)現(xiàn)了網(wǎng)絡(luò)聊天和電子郵件收發(fā)功能。
增加P2P網(wǎng)絡(luò)功能
典型的P2P網(wǎng)絡(luò)軟件有BT下載、MSN、QQ、SKYPE等等。微軟的MSN聊天工具協(xié)議是公開的,可從網(wǎng)上下載。利用泰信的底層網(wǎng)絡(luò)協(xié)議,可以將其很方便的嵌入到機(jī)頂盒里,編譯生成的文件名為P2P.bin,有API說明。
現(xiàn)在數(shù)字電視機(jī)頂盒也已經(jīng)步入網(wǎng)絡(luò)時(shí)代, 雙向機(jī)頂盒得到普遍應(yīng)用。一些計(jì)算機(jī)互聯(lián)網(wǎng)上的應(yīng)用也得以在機(jī)頂盒上實(shí)現(xiàn)。本文就介紹一種即時(shí)通信協(xié)議在機(jī)頂盒上的實(shí)現(xiàn)。
當(dāng)前互聯(lián)網(wǎng)上即時(shí)通信協(xié)議繁多, 有QQ、MSN、Yahoo Messager、AOL、ICO、Google Talk等。這些協(xié)議大都遵循XMPP(Jabber協(xié)議的標(biāo)準(zhǔn)化)或簡單地對(duì)其進(jìn)行改造。XMPP是一個(gè)開放的文本協(xié)議, 以XML流為基礎(chǔ),協(xié)議簡明, 擴(kuò)展性強(qiáng),是一種發(fā)展迅速的P2P協(xié)議。也有人用它作軟交換服務(wù)器。以下介紹XMPP在機(jī)頂盒上的實(shí)現(xiàn)。
XMPP簡介
XMPP協(xié)議的前身是Jabber協(xié)議, XMPP的全稱是可擴(kuò)展的消息和出席信息協(xié)議(Extensible Messaging and Presence Protocol)。XMPP不僅具有一般即時(shí)通信協(xié)議所具有的功能, 它還允許同一帳號(hào)在不同地點(diǎn)/設(shè)備同時(shí)登陸, 當(dāng)然最具特色的還是它的開放性。協(xié)議的開放使得人們?nèi)菀自诟鞣N設(shè)備上實(shí)現(xiàn)。XMPP協(xié)議的帳戶由于歷史原因被稱為JID, 是這樣的形式: example@domain/resouce。前面說同一帳戶可以在多處登陸, 服務(wù)器如何區(qū)分多處登陸的同一帳戶呢?其實(shí)在不同地方登陸的帳戶的JID的resouce部分是不一樣的, resouce部分可以在登陸過程中和服務(wù)器協(xié)商確定。
XMPP的登陸過程
其實(shí)一個(gè)郵箱帳戶就可以是一個(gè)MSN帳戶, 下面以登陸MSN的服務(wù)器為例介紹的登陸過程。假設(shè)有帳戶 example@msn.com。
1) 根據(jù)帳戶的域名部分msn.com, 使用域名服務(wù)查詢, 獲取XMPP服務(wù)器的地址
2) 連接XMPP服務(wù)器, 發(fā)送初始化請(qǐng)求, 服務(wù)器應(yīng)答
3) 獲取服務(wù)器支持的安全機(jī)制, 和服務(wù)器建立安全傳輸層
4) 獲取并選擇一種服務(wù)器支持的認(rèn)證機(jī)制, 向服務(wù)器認(rèn)證客戶端帳號(hào)
5) 和服務(wù)器進(jìn)行協(xié)商JID的resouce部分
6) 建立和服務(wù)器的會(huì)話
成功登陸后, 我們在機(jī)頂盒上實(shí)現(xiàn)的客戶端可以相互通信, 也可以和PC機(jī)上的各種客戶端通信(MSN、Google Talk、Pidgin、 LinQ等)。
通過XMPP協(xié)議, 各個(gè)不同地方, 不同型號(hào)的機(jī)頂盒只要接入互聯(lián)網(wǎng), 就能夠相互連接、相互通信。由于和服務(wù)器連接中安全層的存在, 各個(gè)機(jī)頂盒之間的通信內(nèi)容是安全的, 即: 信息是完整的、不能被竊聽的、不能被篡改的、和兩臺(tái)PC機(jī)通訊是一樣的。XMPP協(xié)議對(duì)機(jī)頂盒資源要求不是很高, 但也需要具有一定處理速度,經(jīng)常使用的ST5105不能滿足這種要求,會(huì)經(jīng)常死機(jī),然而在三洋機(jī)頂盒上相互通信卻很流暢。
在具有雙向網(wǎng)絡(luò)的機(jī)頂盒上實(shí)現(xiàn)這種P2P協(xié)議后,就可以在此基礎(chǔ)上開發(fā)很多有趣的功能。例如,如果使用硬盤,在網(wǎng)絡(luò)速度足夠快的情況下共享影像資料;開發(fā)遠(yuǎn)端子母機(jī)等。
因?yàn)樘┬盘峁┝素S富的網(wǎng)絡(luò)接口,郵件系統(tǒng)的實(shí)現(xiàn)相對(duì)比較簡單。郵件系統(tǒng)分為服務(wù)器和客戶端兩部分,服務(wù)器可以使用在Internet網(wǎng)上的各種郵件服務(wù)器,例如,新浪、搜狐等門戶網(wǎng)站的郵件服務(wù)器??蛻舳藙t需要在機(jī)頂盒端實(shí)現(xiàn),其基本要求是實(shí)現(xiàn)用于發(fā)送郵件的smtp協(xié)議和用于接收郵件的pop3協(xié)議,應(yīng)當(dāng)實(shí)現(xiàn)對(duì)中英文本正文和多附件的支持。
網(wǎng)絡(luò)郵件系統(tǒng)作為雙向業(yè)務(wù)的基礎(chǔ)部件可以作為用戶上傳數(shù)據(jù)的重要渠道,可用于以文本正文形式發(fā)送用戶服務(wù)請(qǐng)求,以附件方式上傳下載多媒體數(shù)據(jù)分享資源,甚至使用附件升級(jí)程序等應(yīng)用中。
smtp協(xié)議和用于接收郵件的pop3協(xié)議都是公開的,可以在網(wǎng)上獲得。編譯成的文件名為mail.bin,同樣有API使用說明。
三洋LC74189機(jī)頂盒平臺(tái)具有很高的速度。我得到的這臺(tái)配置為2GB的NAND FLASH,一個(gè)SD讀卡器,利用這個(gè)郵件功能,可以將機(jī)頂盒當(dāng)作一個(gè)網(wǎng)絡(luò)數(shù)碼像框,只需將數(shù)碼相機(jī)的SD卡插到機(jī)頂盒上就可以瀏覽照片,或?qū)⑵浒l(fā)到彩印中心,或者PC機(jī)上瀏覽。當(dāng)然,也可以使用機(jī)頂盒接收照片郵件,觀看親友從外地發(fā)來的照片,非常實(shí)用。
最后,感謝泰信提供了一個(gè)開放的軟件和機(jī)頂盒硬件平臺(tái)。這標(biāo)志著中國數(shù)字電視技術(shù)從此走向了開放,即將迎來快速發(fā)展的新時(shí)代。
評(píng)論comment