泰信公開了比較完善的網絡接口,實現TCP/IP、UDP、PPPOE等網絡協議。并屏蔽了比較復雜的協議棧部分。僅過一段時間的開發測試,就可以在這個API上實現P2P網絡協議、電子郵件客戶端功能。在這些協議棧上,可以很容易地完成各種網絡功能。
增加P2P網絡功能
典型的P2P網絡軟件有BT下載、MSN、QQ、SKYPE等等。微軟的MSN聊天工具協議是公開的,可從網上下載。利用泰信的底層網絡協議,可以將其很方便的嵌入到機頂盒里,編譯生成的文件名為P2P.bin,有API說明。
現在數字電視機頂盒也已經步入網絡時代, 雙向機頂盒得到普遍應用。一些計算機互聯網上的應用也得以在機頂盒上實現。本文就介紹一種即時通信協議在機頂盒上的實現。
當前互聯網上即時通信協議繁多, 有QQ、MSN、Yahoo Messager、AOL、ICO、Google Talk等。這些協議大都遵循XMPP(Jabber協議的標準化)或簡單地對其進行改造。XMPP是一個開放的文本協議, 以XML流為基礎,協議簡明, 擴展性強,是一種發展迅速的P2P協議。也有人用它作軟交換服務器。以下介紹XMPP在機頂盒上的實現。
XMPP簡介
XMPP協議的前身是Jabber協議, XMPP的全稱是可擴展的消息和出席信息協議(Extensible Messaging and Presence Protocol)。XMPP不僅具有一般即時通信協議所具有的功能, 它還允許同一帳號在不同地點/設備同時登陸, 當然最具特色的還是它的開放性。協議的開放使得人們容易在各種設備上實現。XMPP協議的帳戶由于歷史原因被稱為JID, 是這樣的形式: example@domain/resouce。前面說同一帳戶可以在多處登陸, 服務器如何區分多處登陸的同一帳戶呢?其實在不同地方登陸的帳戶的JID的resouce部分是不一樣的, resouce部分可以在登陸過程中和服務器協商確定。
XMPP的登陸過程
其實一個郵箱帳戶就可以是一個MSN帳戶, 下面以登陸MSN的服務器為例介紹的登陸過程。
1) 根據帳戶的域名部分gmail.com, 使用域名服務查詢, 獲取XMPP服務器的地址
2) 連接XMPP服務器, 發送初始化請求, 服務器應答
3) 獲取服務器支持的安全機制, 和服務器建立安全傳輸層
4) 獲取并選擇一種服務器支持的認證機制, 向服務器認證客戶端帳號
5) 和服務器進行協商JID的resouce部分
6) 建立和服務器的會話
成功登陸后, 我們在機頂盒上實現的客戶端可以相互通信, 也可以和PC機上的各種客戶端通信(MSN、Google Talk、Pidgin、 LinQ等)。
通過XMPP協議, 各個不同地方, 不同型號的機頂盒只要接入互聯網, 就能夠相互連接、相互通信。由于和服務器連接中安全層的存在, 各個機頂盒之間的通信內容是安全的, 即: 信息是完整的、不能被竊聽的、不能被篡改的、和兩臺PC機通訊是一樣的。XMPP協議對機頂盒資源要求不是很高, 但也需要具有一定處理速度,經常使用的ST5105不能滿足這種要求,會經常死機,然而在三洋機頂盒上相互通信卻很流暢。
在具有雙向網絡的機頂盒上實現這種P2P協議后,就可以在此基礎上開發很多有趣的功能。例如,如果使用硬盤,在網絡速度足夠快的情況下
為機頂盒增加P2P和郵件功能
共享影像資料;開發遠端子母機等。
因為泰信提供了豐富的網絡接口,郵件系統的實現相對比較簡單。郵件系統分為服務器和客戶端兩部分,服務器可以使用在Internet網上的各種郵件服務器,例如,新浪、搜狐等門戶網站的郵件服務器。客戶端則需要在機頂盒端實現,其基本要求是實現用于發送郵件的smtp協議和用于接收郵件的pop3協議,應當實現對中英文本正文和多附件的支持。
網絡郵件系統作為雙向業務的基礎部件可以作為用戶上傳數據的重要渠道,可用于以文本正文形式發送用戶服務請求,以附件方式上傳下載多媒體數據分享資源,甚至使用附件升級程序等應用中。
smtp協議和用于接收郵件的pop3協議都是公開的,可以在網上獲得。編譯成的文件名為mail.bin,同樣有API使用說明。
三洋LC74189機頂盒平臺具有很高的速度。我得到的這臺配置為2GB的NAND FLASH,一個SD讀卡器,利用這個郵件功能,可以將機頂盒當作一個網絡數碼像框,只需將數碼相機的SD卡插到機頂盒上就可以瀏覽照片,或將其發到彩印中心,或者PC機上瀏覽。當然,也可以使用機頂盒接收照片郵件,觀看親友從外地發來的照片,非常實用。