專利名稱:一種在網(wǎng)頁中進(jìn)行實(shí)時(shí)信息廣播的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種與互聯(lián)網(wǎng)即時(shí)通迅相關(guān)的技術(shù),特別明確地介紹了一種用網(wǎng)頁的形式來進(jìn)行信息實(shí)時(shí) 廣播的方法。
背景技術(shù):
當(dāng)今的互聯(lián)網(wǎng)應(yīng)用豐富多彩,網(wǎng)絡(luò)游戲、網(wǎng)絡(luò)視頻已經(jīng)在年輕人中間深入人心,并成為了他們生 活的一部分。不過到目前為止,互聯(lián)網(wǎng)上有很多重要的應(yīng)用還是以桌面程序程序?yàn)橹?,如?lián)眾游戲、QQ 聊天等等,這其中一個(gè)重要的原因是由于網(wǎng)頁程序相比于桌面程序缺少一種成熟的能夠與服務(wù)器保持長連
接的機(jī)制,通俗地講是一種服務(wù)器到網(wǎng)頁客戶端的廣播機(jī)制,因此網(wǎng)頁程序很難像桌面程序一樣在不刷新 界面的前提下及時(shí)主動(dòng)地由服務(wù)器來更新前端的顯示頁面。
現(xiàn)今比較常用的能夠?qū)崿F(xiàn)這種廣播機(jī)制的方法有兩種, 一種是基于iftame及h加lfile的流方式和基 于Ajax的長輪詢方式,以這兩種技術(shù)為代表的應(yīng)用有如Google公司的gmail和百度公司Hi聊天網(wǎng)頁版等。 雖然它們的具體實(shí)現(xiàn)原理不同,但是它們的核心技術(shù)都是通過從客戶端發(fā)送ajax請(qǐng)求到服務(wù)器端從而得到 服務(wù)器端的更新數(shù)據(jù)。iframe和htmlfile流方式是在頁面中插入偽iftame并將此偽ifiame作為連接中繼從 而源源不斷獲取服務(wù)器更新信息;而ajax長輪詢則是利用服務(wù)器端對(duì)ajax請(qǐng)求進(jìn)行阻塞來使ajax實(shí)時(shí)等 待服務(wù)器端的信息更新。對(duì)于這兩種技術(shù)前者的缺點(diǎn)是,由于偽iframe永遠(yuǎn)保持與服務(wù)器的信息流而不斷 開,因此瀏覽器會(huì)永遠(yuǎn)保持加載狀態(tài),影響用戶的瀏覽體驗(yàn);而后者的ajax長輪詢機(jī)制則由于HTTP1.1 規(guī)范使得一個(gè)客戶端最多只能使用不超過兩個(gè)的HTTP連接,進(jìn)而使客戶端與服務(wù)器端之間控制信息與數(shù) 據(jù)信息很難實(shí)現(xiàn)完全同步。再加上這兩種技術(shù)都是基于ajax請(qǐng)求,而每次的ajax請(qǐng)求web服務(wù)器都會(huì)為 它們創(chuàng)建一個(gè)線程,因此在大型應(yīng)用中當(dāng)ajax的請(qǐng)求應(yīng)用十分頻繁時(shí),以上兩種即時(shí)獲得服務(wù)器信息廣播 的機(jī)制就會(huì)變得非常低效,服務(wù)器線程池里有限的線程數(shù)甚至可能會(huì)阻塞新的連接。
發(fā)明內(nèi)容
本發(fā)明提出了一種在網(wǎng)頁中通過調(diào)用flash控件并利用socket服務(wù)器來瞬間發(fā)送并接收網(wǎng)頁信息的 一種廣播機(jī)制。它不但可以使客戶端與服務(wù)器之間建立無限多的實(shí)時(shí)連接,而且在閑暇階段這些共享也不 會(huì)與服務(wù)器之間產(chǎn)生任何通信,從而不會(huì)對(duì)服務(wù)器造成負(fù)載上的壓力,繼而可以有效地解決在利用服務(wù)器 推送技術(shù)使網(wǎng)頁信息即時(shí)更新的問題。
本發(fā)明的實(shí)現(xiàn)過程如下
它是由網(wǎng)頁瀏覽器、flash控件和遠(yuǎn)端socket服務(wù)器三部分共同構(gòu)成網(wǎng)頁瀏覽器部分是信息 廣播的輸入輸出接口,它負(fù)責(zé)在頁面中將網(wǎng)頁訪問者的輸入信息發(fā)送給flash發(fā)送控件,并將廣播信
4息發(fā)送給數(shù)據(jù)庫中進(jìn)行保存,同時(shí)控制并顯示由flash接收控件傳來的不同網(wǎng)頁用戶的廣播信息;flash 控件部分是信息廣播的調(diào)度中心,是傳送和顯示信息的樞紐, 一方面它要接收瀏覽器傳送的用戶信息 輸入,在接到信息輸入的同時(shí),將其轉(zhuǎn)發(fā)給socket服務(wù)器,另一方面還需保持與socket服務(wù)器的實(shí)時(shí) 不間斷通信,以實(shí)現(xiàn)實(shí)時(shí)接收socket服務(wù)器傳來的信息廣播;遠(yuǎn)端socket服務(wù)器是實(shí)現(xiàn)信息廣播的核 心部件,是網(wǎng)頁信息廣播的播報(bào)中心,它與客戶瀏覽器通過flash控件保持實(shí)時(shí)連接,當(dāng)其中一個(gè)用 戶提交信息播報(bào)后,socket服務(wù)器將實(shí)時(shí)將其轉(zhuǎn)發(fā)給所有與之保持連接的flash控件,進(jìn)而廣播到用 戶瀏覽器上進(jìn)行顯示。
網(wǎng)頁瀏覽器單元包括以下內(nèi)容
a. 用于接收網(wǎng)頁訪問者在瀏覽器上輸入的發(fā)送信息
b. 在提交給flash發(fā)送控件之前這些輸入信息通過網(wǎng)頁腳本程序進(jìn)行過濾和再處理
c. 通過頁面腳本語言將待發(fā)送信息作為參數(shù)加載進(jìn)flash控件中,并發(fā)送到數(shù)據(jù)庫中進(jìn)行備份
d. 網(wǎng)頁部分還用于及時(shí)獲得flash接收控件發(fā)送回來的廣播信息
e. 根據(jù)接收的廣播內(nèi)容進(jìn)行過濾并控制待顯示廣播內(nèi)容
f. 用于控制廣播的刷新間隔,刷新條目和刷新的暫停和繼續(xù)
Flash控件單元包括以下內(nèi)容
a. 通過flash腳本語言與遠(yuǎn)端的socket服務(wù)器建立實(shí)時(shí)的客戶連接
b. 利用flash腳本語言創(chuàng)建客戶端信息共享參數(shù)
c. 通過flash腳本語言將從網(wǎng)頁端傳送進(jìn)flash的信息賦值給信息共享參數(shù)
d. 當(dāng)共享參數(shù)值被任何客戶端所修改后,flash接收控件中的共享同步方法將會(huì)被激發(fā),并且接 收到的廣播信息內(nèi)容將會(huì)賦值給同步方法中的中間變量
e. 通過flash腳本語言調(diào)用頁面腳本語言將廣播信息發(fā)送給前端瀏覽器
遠(yuǎn)端socket fl艮務(wù)器單元用來與客戶瀏覽器中的flash接收控件建立實(shí)時(shí)的socket連接,連接建 立起來之后,可以實(shí)時(shí)監(jiān)控客戶瀏覽器中flash發(fā)送控件中的客戶端共享信息單元值的改變,當(dāng)任何 客戶端的共享信息單元值變化,socket服務(wù)器都會(huì)將立即通知所有與之保持聯(lián)系的flash接收控件。
圖1是網(wǎng)頁信息廣播方法概圖
圖2是網(wǎng)頁信息廣播的發(fā)送信息機(jī)制
圖3網(wǎng)頁信息廣播的接收信息機(jī)制
具體實(shí)施例方式
網(wǎng)頁輸入信息采集
1. 網(wǎng)頁訪問者通過網(wǎng)頁界面輸入信息,頁面的腳本語言對(duì)此信息進(jìn)行過濾,如果符合要求,則此
信息將被加入頁面的session標(biāo)識(shí),此標(biāo)識(shí)用來標(biāo)記此信息的發(fā)送頁面。
2. 當(dāng)待發(fā)送信息被加入頁面session標(biāo)識(shí)后,此信息還會(huì)被加入發(fā)送方的id標(biāo)示,此id標(biāo)識(shí)是為 了告知接收信息的接收方是誰發(fā)送的信息。
3. 網(wǎng)頁通過頁面腳本語言加載flash發(fā)送控件,同時(shí)經(jīng)過過濾、整理后的待發(fā)信息也將會(huì)被作為 參數(shù)同時(shí)傳入flash發(fā)送控件中。
4. 待發(fā)送的信息通過頁面腳本語言也將會(huì)被同步發(fā)送到本網(wǎng)頁的信息顯示區(qū)域,同時(shí)發(fā)送到遠(yuǎn)端 的數(shù)據(jù)庫中進(jìn)行備份。
Flash發(fā)送控件與遠(yuǎn)程socket服務(wù)器的連接及信息的發(fā)送
1. 當(dāng)用戶在網(wǎng)頁上輸入發(fā)送信息后,網(wǎng)頁中的頁面腳本語言加載flash發(fā)送控件,控件中的flash 腳本語言將立即與遠(yuǎn)端的socket服務(wù)器建立連接,之后取得貯藏在socket服務(wù)器端的信息共享 單元。
2. 當(dāng)待發(fā)信息通過頁面腳本語言傳送進(jìn)flash發(fā)送控件中后,發(fā)送控件通過flash腳本語言將此信 息賦值給信息共享單元,此后flash腳本語言會(huì)調(diào)用本頁面的頁面腳本語言來卸載自身,從而 斷開flash發(fā)送控件與socket服務(wù)器之間的連接,以此減少socket服務(wù)器端的負(fù)擔(dān)。
遠(yuǎn)程服務(wù)器的消息廣播機(jī)制;
遠(yuǎn)程socket服務(wù)器是進(jìn)行信息廣播的核心,它通過客戶端的flash接收控件與所有的客戶端網(wǎng)頁都保 持著實(shí)時(shí)的連接并實(shí)時(shí)監(jiān)測(cè)貯藏在服務(wù)器端的共享信息單元的值的改變, 一旦此共享值被客戶端的flash 發(fā)送控件所改變,socket服務(wù)器會(huì)立即觸發(fā)所有與之保持連接的flash接收控件中的共享信息同步方法。flash接收控件與遠(yuǎn)程socket服務(wù)器的連接及信息的接收
1. 當(dāng)用戶打開瀏覽器加載目標(biāo)頁面的同時(shí),網(wǎng)頁中的頁面腳本語言將同步加載flash接收控件, 控件中的flash腳本語言將立即與遠(yuǎn)端的socket服務(wù)器建立連接,之后取得socket服務(wù)器端的 信息共享單元。
2. 當(dāng)flash接收控件中的共享信息同歩方法被socket服務(wù)器觸發(fā)后,此方法首先會(huì)將共享信息變 動(dòng)值儲(chǔ)存到中間變量中,之后flash腳本語言根據(jù)中間變量中包含的發(fā)送頁面的session來判斷 此廣播是否是由本頁面發(fā)出,如果是則此條廣播將被過濾。
3. 如果接收到的廣播信息沒有被flash腳本語言所過濾,則flash接收控件會(huì)調(diào)用頁面中的頁面腳 本函數(shù),并將此廣播信息作為參數(shù)傳遞給網(wǎng)頁中的頁面顯示函數(shù)。
頁面顯示函數(shù)處理廣播消息
1. 網(wǎng)頁中的頁面顯示函數(shù)在接到通過flash接收函數(shù)傳送的信息廣播后,會(huì)將信息通過頁面腳本 語言立即顯示到頁面上的顯示區(qū)域中。
2. 通過網(wǎng)頁上頁面腳本函數(shù),網(wǎng)頁訪問者可以控制廣播信息的顯示時(shí)間間隔、 一次顯示的條目數(shù) 以及廣播信息的顯示和隱藏。
權(quán)利要求
1.一種在網(wǎng)頁中進(jìn)行實(shí)時(shí)信息廣播的方法,其特征是它是由網(wǎng)頁瀏覽器、flash控件和遠(yuǎn)端socket服務(wù)器三部分共同構(gòu)成網(wǎng)頁瀏覽器部分是信息廣播的輸入輸出接口,它負(fù)責(zé)在頁面中將網(wǎng)頁訪問者的輸入信息發(fā)送給flash發(fā)送控件,并將廣播信息發(fā)送給數(shù)據(jù)庫中進(jìn)行保存,同時(shí)控制并顯示由flash接收控件傳來的不同網(wǎng)頁用戶的廣播信息;flash控件部分是信息廣播的調(diào)度中心,是傳送和顯示信息的樞紐,一方面它要接收瀏覽器傳送的用戶信息輸入,在接到信息輸入的同時(shí),將其轉(zhuǎn)發(fā)給socket服務(wù)器,另一方面它須保持與socket服務(wù)器的實(shí)時(shí)不間斷通信,以實(shí)現(xiàn)實(shí)時(shí)接收socket服務(wù)器傳來的信息廣播;遠(yuǎn)端socket服務(wù)器是實(shí)現(xiàn)信息廣播的核心部件,是網(wǎng)頁信息廣播的播報(bào)中心,它與客戶瀏覽器通過flash控件保持實(shí)時(shí)連接,當(dāng)其中一個(gè)用戶提交信息播報(bào)后,socket服務(wù)器將實(shí)時(shí)將其轉(zhuǎn)發(fā)給所有與之保持連接的flash控件,進(jìn)而廣播到用戶瀏覽器上進(jìn)行顯示。網(wǎng)頁瀏覽器單元包括以下內(nèi)容a.用于接收網(wǎng)頁訪問者在瀏覽器上輸入的發(fā)送信息b.在提交給flash發(fā)送控件之前這些輸入信息通過網(wǎng)頁腳本程序進(jìn)行過濾和再處理c.通過頁面腳本語言將信息輸入作為參數(shù)加載進(jìn)flash控件中,并發(fā)送到數(shù)據(jù)庫中進(jìn)行備份d.用于及時(shí)獲得flash接收控件發(fā)送回來的廣播信息e.根據(jù)接收的廣播內(nèi)容進(jìn)行過濾和已達(dá)到控制顯示廣播內(nèi)容的目的f.用于控制廣播的刷新間隔,刷新條目和刷新的暫停和繼續(xù)Flash控件單元包括以下內(nèi)容a.通過flash腳本語言與遠(yuǎn)端的socket服務(wù)器建立實(shí)時(shí)的客戶連接b.利用flash腳本語言創(chuàng)建客戶端信息共享參數(shù)c.通過flash腳本語言將從網(wǎng)頁端傳送進(jìn)flash的信息賦值給信息共享參數(shù)d.當(dāng)共享參數(shù)值被任何客戶端所修改后,flash接收控件中的共享同步方法將會(huì)被激發(fā),并且接收到的廣播信息內(nèi)容將會(huì)賦值給同步方法中的中間變量e.通過flash腳本語言調(diào)用頁面腳本語言將廣播信息發(fā)送給前端瀏覽器遠(yuǎn)端socket服務(wù)器單元用來與客戶瀏覽器中的flash接收控件建立實(shí)時(shí)的socket連接,連接建立起來之后,可以實(shí)時(shí)監(jiān)控客戶瀏覽器中flash發(fā)送控件中的客戶端共享信息單元值的改變,當(dāng)任何客戶端的共享信息單元值變化,socket服務(wù)器都會(huì)將立即通知所有與之保持聯(lián)系的flash接收控件。
2. 如權(quán)利要求l所述的在網(wǎng)頁中進(jìn)行實(shí)時(shí)信息廣播的方法,其特征是用戶在瀏覽器上所輸入的每一條消息在發(fā)送給廣播中心也就是socket服務(wù)器之前,瀏覽器通過調(diào)用頁面腳本語言對(duì)信息 進(jìn)行過濾,只有符合廣播條件的消息才會(huì)被發(fā)往socket服務(wù)器和數(shù)據(jù)庫,來分別進(jìn)行廣播和存儲(chǔ)。
3. 如權(quán)利要求l所述的在網(wǎng)頁中進(jìn)行實(shí)時(shí)信息廣播的方法,其特征是3.1. 當(dāng)用戶點(diǎn)擊網(wǎng)頁中的發(fā)送按鈕后,發(fā)送的信息會(huì)在網(wǎng)頁的顯示欄同步顯 示,之后此消息會(huì)被加入一個(gè)session標(biāo)簽,當(dāng)瀏覽器從遠(yuǎn)端socket服務(wù)器接收到返回信息廣 播時(shí)的,通過此session標(biāo)記可以鑒別此消息是由本方發(fā)出,從而不再重復(fù)顯示此消息。3.2. 在輸入信息發(fā)送給遠(yuǎn)端的socket服務(wù)器之前,根據(jù)用戶的登陸狀態(tài),此信 息將會(huì)被插入發(fā)送者的id標(biāo)識(shí)。如當(dāng)用戶沒有登陸時(shí),發(fā)送標(biāo)識(shí)將被標(biāo)示為陌生人,而如果 用戶己經(jīng)登陸則此標(biāo)識(shí)將以用戶的用戶名代替。
4. 如權(quán)利要求l所述的在網(wǎng)頁中進(jìn)行實(shí)時(shí)信息廣播的方法,其特征是當(dāng)用戶將發(fā)送信息 發(fā)送給遠(yuǎn)端socket服務(wù)器進(jìn)行廣播的同時(shí),此信息也將被發(fā)送到數(shù)據(jù)庫服務(wù)器中進(jìn)行保存,以備日后 使用。
5. 如權(quán)利要求3所述的在網(wǎng)頁中進(jìn)行實(shí)時(shí)信息廣播的方法,其特征是當(dāng)flash接收控件接 收到遠(yuǎn)端socket服務(wù)器轉(zhuǎn)發(fā)的信息廣播時(shí),控件通過flash腳本語言會(huì)對(duì)廣播信息進(jìn)行整理,使得每 條信息只作為一條進(jìn)行廣播。其次flash腳本語言會(huì)根據(jù)消息中的發(fā)送者標(biāo)志語分辨此消息的發(fā)送者 的登陸狀態(tài),并且按照順序?yàn)橛脩裘由螩SS顏色標(biāo)簽,如果發(fā)送者未登陸則標(biāo)記為陌生人。根據(jù)接 收到的廣播信息中的頁面session值,flash腳本語言會(huì)將本端頁面發(fā)出的信息廣播濾掉。
6. 如權(quán)利要求l所述的在網(wǎng)頁中進(jìn)行實(shí)時(shí)信息廣播的方法,其特征是當(dāng)用戶的瀏覽器通 過flash控件接收到socket遠(yuǎn)端服務(wù)器的信息廣播時(shí),用戶可以通過瀏覽器的各個(gè)按鈕來控制廣播的 顯示條目、顯示間隔和顯示的暫停和繼續(xù)。同時(shí)用戶也可以將廣播顯示欄彈出當(dāng)前窗口。
7. 根據(jù)權(quán)利要求l、 2、 3、 4、 5、 6所述的網(wǎng)頁中進(jìn)行實(shí)時(shí)信息廣播的方法,其特征在于 所述的信息廣播中的信息是指包括文字在內(nèi)所有字符串信息;所述的flash控件中的腳本語言是指 Actionscript腳本;瀏覽器頁面的腳本語言是指JavaScript腳本語言;所述的socket服務(wù)器是運(yùn)行在網(wǎng) 站服務(wù)器所在的主機(jī)上的一個(gè)應(yīng)用程序,它可以是包括Flash Media Server在內(nèi)任何類似的媒體交互服 務(wù)器。
全文摘要
本發(fā)明公布了一種在網(wǎng)頁中進(jìn)行實(shí)時(shí)信息廣播的方法,屬于互聯(lián)網(wǎng)在線通訊領(lǐng)域。網(wǎng)頁瀏覽者通過網(wǎng)頁頁面輸入信息到服務(wù)器,之后此信息將被服務(wù)器以推送的形式轉(zhuǎn)發(fā)到所有與之保持聯(lián)系的客戶瀏覽器中,即實(shí)現(xiàn)一種客戶的輸入信息可以被實(shí)時(shí)廣播并接收的機(jī)制。通過此機(jī)制可以使網(wǎng)頁上任何用戶的輸入都可以即時(shí)被其它瀏覽器所接收并顯示。由于互聯(lián)網(wǎng)上絕大多數(shù)瀏覽器都支持flash播放器插件,而此方法除了要求客戶瀏覽器支持此插件以外,網(wǎng)頁客戶端無需安裝任何額外插件,可以最大限度的方便用戶的使用和開發(fā)人員的開發(fā)部署。本發(fā)明所采用的技術(shù)方案是在瀏覽器中調(diào)用flash發(fā)送控件用來發(fā)送信息,并調(diào)用flash接收控件用來接收由遠(yuǎn)端socket服務(wù)器轉(zhuǎn)發(fā)的即時(shí)消息從而實(shí)現(xiàn)一種網(wǎng)頁中的即時(shí)性信息廣播機(jī)制。
文檔編號(hào)H04L12/18GK101551821SQ200910084468
公開日2009年10月7日 申請(qǐng)日期2009年5月19日 優(yōu)先權(quán)日2009年5月19日
發(fā)明者周佺喜 申請(qǐng)人:周佺喜