Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 一区二区三区高清视频在线观看,亚洲精品日韩一区二区,久久精品免费在线观看

          整合營(yíng)銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          響站HTML5響應(yīng)式自助建站系統(tǒng)做網(wǎng)站收錄排名怎么樣

          響站HTML5響應(yīng)式自助建站系統(tǒng)做網(wǎng)站收錄排名怎么樣?

          響站HTML5響應(yīng)式自助建站系統(tǒng)做網(wǎng)站收錄排名怎么樣?

          我們的生活離不開互聯(lián)網(wǎng),在百度搜索想了解的內(nèi)容信息后,點(diǎn)擊搜索展示的結(jié)果,我們就進(jìn)入了一個(gè)網(wǎng)站。網(wǎng)站是作為企業(yè)互聯(lián)網(wǎng)宣傳推廣的重要媒介,企業(yè)網(wǎng)站代表著企業(yè)在互聯(lián)網(wǎng)中的形象。隨著智能化自助建站信息的普及,很多企業(yè)都比較容易接受通過智能化自助建站系統(tǒng)這種方式來建立企業(yè)網(wǎng)站。自助建站的投資小、不需要代碼基礎(chǔ)管理與修改頁面、建站速度快是相比傳統(tǒng)開發(fā)建站的幾大重點(diǎn)優(yōu)勢(shì)。

          智能化自助建站系統(tǒng)就是借用設(shè)計(jì)師已經(jīng)做好的成品網(wǎng)站框架,修改框架內(nèi)的核心內(nèi)容,上傳產(chǎn)品信息然后設(shè)置網(wǎng)頁、網(wǎng)站關(guān)鍵字后,用戶就能通過搜索引擎搜索訪問到你的網(wǎng)站。所以用戶普遍關(guān)心的一個(gè)問題就是:自助建站系統(tǒng)做出來的網(wǎng)站收錄好不好?網(wǎng)站頁面效果看起來好不好看?其次才是這個(gè)做網(wǎng)站方不方便。

          使用不同類型的自助建站系統(tǒng),系統(tǒng)后臺(tái)操作的功能大同小異,主要看使用習(xí)慣,但網(wǎng)站做出來的收錄效果卻千差萬別。比如有的網(wǎng)站做好發(fā)布后半小時(shí)就能收錄,在百度搜索引擎就可以直接搜索信息訪問了,而有的建站系統(tǒng)網(wǎng)站做好卻一直被湮沒在茫茫站海,怎么做優(yōu)化也不見起色。綜合使用的自助建站平臺(tái)收錄情況比較好的,推薦大家可以去嘗試使用大腕互聯(lián)開發(fā)的HTML5響應(yīng)式智能建站系統(tǒng)響站,響站做出來的網(wǎng)站是H5響應(yīng)式,系統(tǒng)自帶優(yōu)化推廣系統(tǒng),網(wǎng)頁收錄因?yàn)槭荋TML5響站式網(wǎng)站框架收錄速度也很快,排名也比較好,這是網(wǎng)站建設(shè)出來的案例,都是沒有進(jìn)行專業(yè)的推廣優(yōu)化,通過網(wǎng)站自帶的推廣系統(tǒng)自動(dòng)產(chǎn)生的排名效果。

          大腕互聯(lián)案例-楊梅紅酒

          大腕互聯(lián)建站系統(tǒng)官網(wǎng)

          大腕互聯(lián)案例-愛企網(wǎng)

          大腕互聯(lián)案例-一格家居

          搜索引擎排名是企業(yè)網(wǎng)絡(luò)推廣最為看重的部分,一個(gè)網(wǎng)站再好看,用戶在搜索引擎搜索不到那也是白搭。HTML5網(wǎng)站對(duì)搜索引擎友好,但并不是每一款自助建站系統(tǒng)做出來的網(wǎng)站都能快速地被搜索引擎收錄,這和工具本身的技術(shù)SEO優(yōu)化設(shè)置有關(guān)。建議:如果你選擇的自助建站系統(tǒng)有充足的案例,并且有良好的收錄,方可放心選擇。

          響應(yīng)式網(wǎng)站建設(shè)注冊(cè):http://www.dawaner.net/home/share/pucode/78306546.html

          黑馬注:最近,微信朋友圈最紅的不再是各種雞湯,而是一款呆萌的小游戲“圍住神經(jīng)貓”。不少網(wǎng)友表示,朋友圈已被這只貓刷屏!“圍住神經(jīng)貓”是南京一家公司的游戲團(tuán)隊(duì)開發(fā)的,開發(fā)只用了一天半。現(xiàn)在這股神經(jīng)貓的傳播熱潮已經(jīng)席卷整個(gè)網(wǎng)絡(luò)。這里i黑馬為各位帶來神經(jīng)貓背后的故事:

          “圍住神經(jīng)貓”火了。這是一款HTML5游戲,在微信獲得了瘋狂轉(zhuǎn)發(fā),短短兩天時(shí)間里,即獲得一千萬次的點(diǎn)擊和500萬次的用戶數(shù)。百度指數(shù)兩日間便完成了0到75804的跨越,而出現(xiàn)食品安全危機(jī)的麥當(dāng)勞在7月21日百度指數(shù)峰值時(shí)竟比圍住神經(jīng)貓的百度指數(shù)少了兩萬多。

          一個(gè)設(shè)計(jì)再加一個(gè)程序員,開發(fā)時(shí)長(zhǎng)共計(jì)1.5天,這就是一款百萬用戶數(shù)游戲的全部成本。這款游戲是南京泥巴怪公司開發(fā)的,做“圍住神經(jīng)貓”也是想為了自己的“在線兒童社區(qū)”聚攏些用戶而已。

          “圍住神經(jīng)貓”采用HTML5游戲方式開發(fā),最大的好處就是“即點(diǎn)即玩”,為游戲微信傳播提供了一個(gè)“便捷”的前提,而非像通常意義上的 App 那樣,需要經(jīng)過更多的步驟從應(yīng)用商店下載。而開發(fā)成本低的原因也恰恰是因?yàn)槭褂昧薍TML5游戲引擎——開發(fā)者只負(fù)責(zé)考慮創(chuàng)意問題,重復(fù)機(jī)械的底層游戲編程模塊則由游戲引擎負(fù)責(zé)。

          于是,作為“圍住神經(jīng)貓”的游戲引擎,HTML5游戲引擎公司Egret也趕上了這波現(xiàn)象級(jí)神經(jīng)貓熱潮,一日之間網(wǎng)站瀏覽量翻了十倍。

          對(duì)于Egret創(chuàng)始人兼CEO陳書藝來講,“圍住神經(jīng)貓”游戲網(wǎng)頁最下面那一行“Egret framwork”則意味著,他在短短半天的時(shí)間里,兩部手機(jī)——一部iPhone5s,一部三星Galaxy,毫無電力——他的電話已經(jīng)被打爆了,嵌入廣告邀請(qǐng)、采訪邀請(qǐng)、投資意向紛至沓來。采訪當(dāng)時(shí),陳書藝的手機(jī)還一直在充電狀態(tài)。馬鑒是Egret的聯(lián)合創(chuàng)始人,負(fù)責(zé)管理引擎產(chǎn)品和技術(shù)團(tuán)隊(duì)。他則頻繁遭遇QQ群“開小窗”,其中甚至有公司公關(guān),希望馬鑒可以幫忙制作HTML5游戲,嵌入公司的一些軟推廣。《財(cái)經(jīng)天下》周刊采訪時(shí)曾被打斷兩次,一次是一個(gè)投資人的來訪,而另一次是陳書藝短暫離開時(shí),自己的手機(jī)刺耳地在馬鑒背后發(fā)出響聲。

          Egret是一家HTML5游戲引擎公司,這個(gè)定義對(duì)普通讀者來說可能有些模糊,按照定義來講,HTML5是一系列制作網(wǎng)頁互動(dòng)效果的技術(shù)的集合,而簡(jiǎn)單來講,它的優(yōu)勢(shì)在于能夠在移動(dòng)端為Flash之所不能為的動(dòng)畫效果。而游戲引擎,則可以用陳書藝過去的經(jīng)歷來解釋:2005年,從英國(guó)回國(guó)一年的他加入Discuz!公司。泡過論壇的人都會(huì)在網(wǎng)頁的最下方看到:powered by Discuz!字樣——它是十年間最流行的網(wǎng)絡(luò)論壇框架。Discuz!的用戶可以在不需要任何編程的基礎(chǔ)上,通過簡(jiǎn)單的設(shè)置和安裝,在互聯(lián)網(wǎng)上搭建論壇服務(wù)。直到今天,還有很多論壇在使用這套框架。而Egret想要做得就是HTML5游戲界的Discuz!。

          游戲引擎行業(yè)也不乏國(guó)際品牌,Cocos的2D引擎,Unity的3D引擎已是聲名在外。而Egret的市場(chǎng)策略與它們的不同之處在于,前兩者的使命是使游戲開發(fā)者在開發(fā)App游戲上更加便捷,而Egret則側(cè)重于開發(fā)HTML5游戲。這種策略挺中國(guó)特色的,畢竟目前微信和微博的病毒傳播成為一種主流,游戲開發(fā)者可能更愿意先通過易于傳播的移動(dòng)網(wǎng)頁,以“即點(diǎn)即用”的方式推廣自己的游戲,期望用戶產(chǎn)生依賴之后,會(huì)去應(yīng)用商店下載。而且,游戲引擎業(yè)又不像時(shí)尚界、投資界、媒體界一樣有“外來和尚光環(huán)效應(yīng)”,畢竟不是每個(gè)程序員都是海歸,而Egret提供的中文文檔使游戲開發(fā)門檻更低。

          Egret的產(chǎn)品被“圍住神經(jīng)貓”的開發(fā)者選為自己的游戲引擎還有一個(gè)原因,Egret公司聯(lián)合創(chuàng)始人馬鑒此前十年都在Adobe負(fù)責(zé)Flash產(chǎn)品研發(fā),連從Egret官網(wǎng)下載的程序后綴都是.air,以Adobe Air開發(fā)的程序才會(huì)帶有這一后綴。而神經(jīng)貓的開發(fā)者此前曾一度開發(fā)過Flash游戲。當(dāng)開發(fā)者看到Egret的界面,簡(jiǎn)直震驚了,因?yàn)榇a邏輯與Flash開發(fā)別無二致,只要稍微替換一些代碼說明,即可上手。

          給陳書藝打電話的人不乏希望“圍住神經(jīng)貓”可以嵌入廣告。現(xiàn)象級(jí)產(chǎn)品可以賺快錢,但是現(xiàn)象級(jí)產(chǎn)品制造者的制造者,他們的商業(yè)模式卻不太清晰。在陳書藝看來,這不是現(xiàn)在急需解決的問題,他對(duì)《財(cái)經(jīng)天下》周刊的記者說,“我們公司成立才半年多時(shí)間,目前就是希望能把產(chǎn)品做好。”

          在整個(gè)游戲引擎行業(yè)主要有三種盈利模式,最簡(jiǎn)單是賣軟件,比如Unity的3D引擎,代理商價(jià)格在一萬兩千元左右,這在中國(guó)基本不可行。然后就是為游戲開發(fā)者提供云服務(wù)等增值服務(wù),以CocoonJS為代表。最后則是利用游戲引擎做一個(gè)游戲集合平臺(tái),類似最早的Web端4399小游戲集合平臺(tái),游戲引擎公司擔(dān)任因流量的任務(wù),Turbulenz游戲引擎就發(fā)布了一個(gè)ga.me的網(wǎng)站。對(duì)于每一種商業(yè)模式陳書藝都不置可否。

          他可能還沒想清楚做HTML5游戲引擎最終的盈利方向,但是他覺得,今年是他做HTML5搜索引擎最合適的契機(jī),“這個(gè)項(xiàng)目讓我覺得特別興奮”,據(jù)他所說,他算是為此放棄了一份差點(diǎn)IPO的創(chuàng)業(yè)公司——奇矩互動(dòng)。“我不是想賺多少錢,我是挺想做點(diǎn)……”他沒好意思把“做成一件大事”說出口,默默轉(zhuǎn)頭開始挪回因?yàn)樾枰臄z雜志照片而挪動(dòng)的茶幾。

          簡(jiǎn)單的來講,做HTML5游戲引擎,陳書藝就是想“占山頭”,先把這件事做了。在這個(gè)時(shí)間點(diǎn)上,他和馬鑒發(fā)現(xiàn)做HTML5游戲引擎的時(shí)機(jī)已經(jīng)日趨成熟。首先是移動(dòng)社交網(wǎng)絡(luò)的興起,游戲“即點(diǎn)即用”這個(gè)需求是存在的。其次是HTML5的規(guī)范標(biāo)準(zhǔn)日趨穩(wěn)定,Google的Chrome、微軟的IE、蘋果的Safari逐漸愿意支持規(guī)范統(tǒng)一的的標(biāo)準(zhǔn)化。而移動(dòng)硬件的進(jìn)化已經(jīng)逐漸能滿足需求運(yùn)行游戲的需求,2010年,很多智能手機(jī)都沒有配置對(duì)Canvas的硬件加速,這使某些游戲開發(fā)者“有心無力”,而現(xiàn)在就連紅米Note都已經(jīng)配備了8核處理器。

          陳書藝總提到一個(gè)具體的年份,2010年。這一年是一個(gè)HTML5的里程碑,喬布斯在加利福尼亞州庫比蒂諾總部的內(nèi)部大會(huì)上回答一位蘋果員工的提問,“沒有人愿意使用Flash,全球已經(jīng)開始步入HTML5時(shí)代。”使得HTML5走入人們的視線中心,此后HTML5經(jīng)過捧后殺——以一家名叫Moblyng的提供HTML5解決方案的公司的倒閉作為引爆點(diǎn)。“其實(shí)這件事也是這個(gè)公司自己的經(jīng)營(yíng)問題”,陳書藝說,接著他看了一眼被喬布斯視為HTML5的手刃對(duì)象Adobe的前員工馬鑒。

          泥巴怪公司無疑是互聯(lián)網(wǎng)的幸運(yùn)者,但是除了HTML5,其本身對(duì)一些細(xì)節(jié)的改造或多或少成為了它火爆的因素。“圍住神經(jīng)貓”并非泥巴怪的首創(chuàng)游戲,此前中美日各國(guó)開發(fā)者均開發(fā)過類似游戲——格點(diǎn)圍住一只不斷移動(dòng)的貓,就算獲勝。而把日本漫畫“全是貓”和圍貓游戲相結(jié)合,再加上不同級(jí)別勝利者的取名“擊敗了精神病院99%的精神病患者,獲得稱號(hào)精神病院長(zhǎng)”、“擊敗了精神病院100%的精神病患者,獲得稱號(hào):白天睡覺喵”迎合了互聯(lián)網(wǎng)亞文化的賤心理,再加上微信分享使人類“攀比心”作祟,使得“圍住神經(jīng)貓”比其它“圍貓游戲”更有可能獲得人類的關(guān)注度,當(dāng)然,最重要還是運(yùn)氣好。

          本文來自《財(cái)經(jīng)天下周刊》的投稿

          麗楓,鄭力新,王佳斌

          (華僑大學(xué) 工學(xué)院,福建 泉州 362021)

          摘要:隨著互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,Web技術(shù)在各個(gè)領(lǐng)域得到了不同程度的運(yùn)用,人們對(duì)于Web應(yīng)用的實(shí)時(shí)性提出了更高的要求,HTML5WebSocket協(xié)議因此得到了廣泛的關(guān)注。通過對(duì)基于HTTP的傳統(tǒng)Web實(shí)時(shí)通信方案進(jìn)行分析,針對(duì)其中的不足與缺點(diǎn),深入介紹了基于HTML5 WebSocket協(xié)議的實(shí)時(shí)通信機(jī)制以及相對(duì)于傳統(tǒng)方案的優(yōu)勢(shì),并通過使用Node.js的Express框架和HTML5 WebSocket協(xié)議的第三方應(yīng)用程序編程接口Socket.io類庫實(shí)現(xiàn)了一個(gè)基于WebSocket協(xié)議的Web應(yīng)用。經(jīng)實(shí)驗(yàn)表明,所描述的研究能成功地在客戶端和服務(wù)器端完成基于HTML5 WebSocket協(xié)議的實(shí)時(shí)通信過程并建立連接。

          0引言

          隨著互聯(lián)網(wǎng)技術(shù)的高速發(fā)展,人們對(duì)Web應(yīng)用的實(shí)時(shí)性要求越來越高,傳統(tǒng)的Web實(shí)時(shí)通信方案已經(jīng)無法滿足一些現(xiàn)實(shí)應(yīng)用的需求。在長(zhǎng)期的Web應(yīng)用過程中該傳統(tǒng)方案逐漸露出資源浪費(fèi)、實(shí)時(shí)性不高等問題,這些問題的出現(xiàn)對(duì)一些實(shí)時(shí)性要求較高的Web應(yīng)用(如在線游戲、在線證券、設(shè)備監(jiān)控等)造成了不好的用戶體驗(yàn)。除此之外,這些不足還會(huì)制約Web實(shí)時(shí)通信的性能,對(duì)通信效率造成影響。面對(duì)這種情況,HTML5規(guī)范中定義了WebSocket協(xié)議來實(shí)現(xiàn)更好的用戶體驗(yàn)和實(shí)時(shí)通信功能,并針對(duì)傳統(tǒng)的Web實(shí)時(shí)通信方案在實(shí)際運(yùn)用中產(chǎn)生的資源浪費(fèi)問題進(jìn)行改善,提高通信效率。

          目前,WebSocket協(xié)議的實(shí)現(xiàn)主要分為客戶端和服務(wù)器端兩部分。對(duì)于其客戶端而言,許多的主流瀏覽器(包括個(gè)人電腦和移動(dòng)終端)如谷歌、火狐、IE等都在不同的版本上支持WebSocket客戶端應(yīng)用程序編程接口。而對(duì)于其服務(wù)器端而言,也有許多常見的應(yīng)用服務(wù)器如WebSphere、WebLogic、Tomcat等在不同的版本上支持WebSocket服務(wù)器端應(yīng)用程序編程接口。綜上所述,本文從傳統(tǒng)的Web實(shí)時(shí)通信方案出發(fā),針對(duì)其在Web應(yīng)用中所體現(xiàn)的不足與缺點(diǎn),深入研究WebSocket協(xié)議在Web實(shí)時(shí)通信方面的原理與優(yōu)勢(shì),并根據(jù)該協(xié)議的通信機(jī)制進(jìn)行實(shí)現(xiàn)。

          1傳統(tǒng)的Web實(shí)時(shí)通信方案

          1.1輪詢

          在早期的Web應(yīng)用中,所采用的Web實(shí)時(shí)通信方案是輪詢。在使用輪詢時(shí),客戶端需要頻繁地向服務(wù)器端發(fā)送HTTP請(qǐng)求來保持客戶端和服務(wù)器端的同步以便不斷地刷新客戶端所要呈現(xiàn)的信息。在這個(gè)過程中,客戶端無法確定合適的時(shí)間間隔向服務(wù)器端發(fā)送HTTP請(qǐng)求。若間隔的時(shí)間太短,客戶端頻繁的請(qǐng)求將會(huì)給服務(wù)器端造成巨大的壓力;若間隔的時(shí)間太長(zhǎng),就無法滿足客戶端和服務(wù)器端實(shí)時(shí)通信的要求。由于客戶端在頻繁地發(fā)送請(qǐng)求時(shí)服務(wù)器端的數(shù)據(jù)可能還未進(jìn)行更新,導(dǎo)致服務(wù)器端返回的大部分應(yīng)答包中的數(shù)據(jù)域?yàn)榭眨蚨a(chǎn)生了很多無謂的網(wǎng)絡(luò)傳輸,浪費(fèi)了大量的帶寬資源和其他網(wǎng)絡(luò)資源。對(duì)于圖1客戶端與服務(wù)器端的交互圖每次的HTTP請(qǐng)求而言,過長(zhǎng)的HTTP頭信息也會(huì)占用不必要的帶寬資源。因此,這是一種缺乏靈活性又低效的Web實(shí)時(shí)通信方案。其中客戶端和服務(wù)器端的交互過程如圖1(a)所示。

          1.2Comet技術(shù)

          目前,Comet技術(shù)[1]的實(shí)現(xiàn)方式包括基于異步JavaScript和可擴(kuò)展標(biāo)記語言(Asynchronous JavaScript and Extensible Markup Language,AJAX)的長(zhǎng)輪詢方式和基于Iframe的流方式。這兩種方式針對(duì)輪詢都做出了較大的改進(jìn)。

          1.2.1基于AJAX的長(zhǎng)輪詢方式

          基于AJAX的長(zhǎng)輪詢方式[2]通過采用AJAX技術(shù)讓客戶端向服務(wù)器端發(fā)送HTTP請(qǐng)求,進(jìn)而與服務(wù)器端建立連接,且該連接會(huì)在服務(wù)器端保持一段時(shí)間。若服務(wù)器端檢測(cè)到有新數(shù)據(jù)產(chǎn)生,那么它會(huì)將這些數(shù)據(jù)通過連接發(fā)送至客戶端,然后關(guān)閉連接;若服務(wù)器端在連接存在期間都沒有產(chǎn)生新的數(shù)據(jù)發(fā)送至客戶端,那么它將會(huì)向客戶端發(fā)送一個(gè)超時(shí)信息,然后關(guān)閉連接。無論服務(wù)器端的數(shù)據(jù)是否還在更新,在連接關(guān)閉之后,客戶端都需要重新向服務(wù)器端發(fā)送HTTP請(qǐng)求來建立連接。其中客戶端和服務(wù)器端的交互過程如圖1(b)所示。

          雖然這種方式能夠?qū)蛻舳说牟糠猪撁孢M(jìn)行更新,減少服務(wù)器端發(fā)送的數(shù)據(jù)量,降低客戶端請(qǐng)求的頻率,減少無效的網(wǎng)絡(luò)傳輸,但當(dāng)服務(wù)器端更新數(shù)據(jù)的速度較快時(shí),基于AJAX的長(zhǎng)輪詢方式將變成普通的輪詢,不僅會(huì)降低其性能,而且還會(huì)對(duì)服務(wù)器端造成較大的處理壓力。除此之外,為了保持HTTP連接長(zhǎng)時(shí)間處于打開狀態(tài),服務(wù)器端也需要消耗一定的服務(wù)器資源。因此,使用基于AJAX的長(zhǎng)輪詢方式會(huì)產(chǎn)生資源浪費(fèi)的問題。

          1.2.2基于Iframe的流方式

          基于Iframe的流方式[3]通過客戶端頁面上內(nèi)嵌的一個(gè)Iframe標(biāo)簽向服務(wù)器端發(fā)送HTTP請(qǐng)求,服務(wù)器端在響應(yīng)該請(qǐng)求后與客戶端建立一條長(zhǎng)連接。連接建立后,服務(wù)器端通過不斷地更新該連接的狀態(tài)以保持其不過期。當(dāng)服務(wù)器端檢測(cè)到有新數(shù)據(jù)產(chǎn)生時(shí),它會(huì)將新數(shù)據(jù)通過該連接發(fā)送給客戶端;當(dāng)客戶端和服務(wù)器端之間的通信出現(xiàn)問題導(dǎo)致連接出現(xiàn)錯(cuò)誤或者關(guān)閉時(shí),客戶端會(huì)立即發(fā)出連接請(qǐng)求與服務(wù)器端重新建立連接,否則該連接會(huì)一直持續(xù),不會(huì)關(guān)閉。其中客戶端和服務(wù)器端的交互過程如圖1(c)所示。

          雖然這種方式有利于減少客戶端的請(qǐng)求次數(shù),減輕客戶端和服務(wù)器端之間的網(wǎng)絡(luò)負(fù)擔(dān),避免因頻繁的建立連接和關(guān)閉連接所帶來的資源浪費(fèi),但由于基于Iframe的流方式在連接過程中始終只維持一個(gè)長(zhǎng)連接,因此客戶端頁面會(huì)一直處于加載過程中而無法顯示頁面加載完成,從而影響用戶體驗(yàn)。且當(dāng)有多個(gè)客戶端同時(shí)向服務(wù)器端發(fā)送HTTP請(qǐng)求時(shí),由于服務(wù)器端長(zhǎng)期只維持一個(gè)連接,因此會(huì)導(dǎo)致服務(wù)器端在這種高并發(fā)狀態(tài)下的處理能力降低,造成大量的服務(wù)器資源和其他網(wǎng)絡(luò)資源被消耗。

          由于基于AJAX的長(zhǎng)輪詢方式和基于Iframe的流方式在通信過程中一直采用HTTP作為通信協(xié)議,因此每次的HTTP請(qǐng)求和應(yīng)答所攜帶的完整的HTTP頭信息不僅增加了實(shí)時(shí)更新信息時(shí)的數(shù)據(jù)傳輸量,還造成帶寬資源的浪費(fèi)。此外,為了維持和協(xié)調(diào)通信過程中HTTP連接隨時(shí)處于可用狀態(tài),服務(wù)器端也需要消耗資源。對(duì)于HTTP連接的建立和關(guān)閉過程而言,服務(wù)器端新產(chǎn)生的數(shù)據(jù)有可能會(huì)因?yàn)闊o法及時(shí)發(fā)送到客戶端而導(dǎo)致客戶端的數(shù)據(jù)丟失。由于這兩種方式對(duì)Web應(yīng)用中的實(shí)時(shí)信息和非實(shí)時(shí)信息的請(qǐng)求/響應(yīng)方式都未發(fā)生改變,因此,當(dāng)實(shí)時(shí)信息的請(qǐng)求較為頻繁時(shí),可能會(huì)造成服務(wù)器端較大的處理壓力,從而影響非實(shí)時(shí)信息的呈現(xiàn)。其中基于HTTP的Web實(shí)時(shí)應(yīng)用模型如圖2所示。

          2傳統(tǒng)的Web實(shí)時(shí)通信方案

          WebSocket協(xié)議[45]是HTML5規(guī)范中的一種新的通信協(xié)議,是能夠在客戶端和服務(wù)器端進(jìn)行異步通信的一種方法。它支持客戶端與服務(wù)器端通過全雙工通信的方式實(shí)現(xiàn)實(shí)時(shí)通信,本質(zhì)上是一個(gè)基于傳輸控制協(xié)議的協(xié)議。因此,WebSocket連接的建立過程與傳輸控制協(xié)議連接的建立過程有些相似,客戶端和服務(wù)器端需要通過“握手”來建立WebSocket連接。

          首先由客戶端向服務(wù)器端發(fā)送一個(gè)HTTP請(qǐng)求,該請(qǐng)求不同于一般的HTTP請(qǐng)求,它包含了一些附加的HTTP頭信息,其中一條信息“Upgrade:WebSocket”表明這是一個(gè)申請(qǐng)將當(dāng)前HTTP協(xié)議升級(jí)為WebSocket協(xié)議的HTTP請(qǐng)求。若服務(wù)器端收到該請(qǐng)求后能正確解讀其HTTP頭信息,那么它會(huì)返回一個(gè)基于HTTP的應(yīng)答報(bào)文給客戶端,此時(shí)連接建立成功[6],之后,客戶端和服務(wù)器端便可以通過該連接主動(dòng)向?qū)Ψ桨l(fā)送或者接收數(shù)據(jù),直到其中一方主動(dòng)關(guān)閉該連接。其中客戶端和服務(wù)器端的交互過程如圖3所示。

          通過WebSocket協(xié)議,客戶端和服務(wù)器端之間只要做一個(gè)“握手”的動(dòng)作就可以建立一條雙向通信的通道。這不僅讓服務(wù)器端可以主動(dòng)與客戶端互發(fā)信息,而且還避免了因客戶端頻繁請(qǐng)求而造成的網(wǎng)絡(luò)資源浪費(fèi)、實(shí)時(shí)通信效率低、服務(wù)器處理壓力大等問題[7]。由于WebSocket連接采用WebSocket協(xié)議作為通信協(xié)議,因此在傳輸過程中數(shù)據(jù)幀的頭部信息所占的字節(jié)數(shù)將大大降低,從而有效地減小了通信過程中傳輸?shù)臄?shù)據(jù)量和網(wǎng)絡(luò)負(fù)載,節(jié)約了帶寬資源。在基于WebSocket協(xié)議的實(shí)時(shí)通信方案中,Web應(yīng)用中的實(shí)時(shí)部分和非實(shí)時(shí)部分被加以區(qū)分。客戶端使用WebSocket協(xié)議獲取實(shí)時(shí)內(nèi)容,使用HTTP協(xié)議獲取非實(shí)時(shí)內(nèi)容。而服務(wù)器端則采用兩種不同的模塊來處理實(shí)時(shí)的WebSocket請(qǐng)求和非實(shí)時(shí)的HTTP請(qǐng)求,其應(yīng)用模型如圖4所示。

          通過上述模型可以看出,該實(shí)時(shí)通信方案使服務(wù)器端的結(jié)構(gòu)更加明確,不僅讓W(xué)ebSocket協(xié)議和HTTP協(xié)議各司其職、互不干擾,而且還降低了系統(tǒng)的耦合性,在最大程度上發(fā)揮了兩個(gè)模塊的功能。此外,由于采用以傳輸控制協(xié)議為基礎(chǔ)的WebSocket協(xié)議來處理實(shí)時(shí)服務(wù),因此可以保證傳輸數(shù)據(jù)過程中的穩(wěn)定性和及時(shí)性,在較大程度上提高了實(shí)時(shí)通信的性能。相對(duì)于傳統(tǒng)方案來說,該方案不僅減小了對(duì)服務(wù)器資源的浪費(fèi),也減輕了服務(wù)器端的處理壓力。

          3基于WebSocket的Web實(shí)時(shí)通信應(yīng)用實(shí)例

          本文采用基于Node.js[8]的Express框架和Socket.io類庫來實(shí)現(xiàn)基于WebSocket的Web實(shí)時(shí)通信應(yīng)用。其中,Node.js是一個(gè)JavaScript運(yùn)行平臺(tái),可用于構(gòu)建響應(yīng)速度快、容易擴(kuò)展的網(wǎng)絡(luò)程序。但由于Node.js中只提供了大量的低端功能,因此文中將使用Express框架進(jìn)行Web實(shí)時(shí)通信應(yīng)用的開發(fā)。Express是一個(gè)能夠在Node.js中使用的 Web應(yīng)用程序開發(fā)框架,它提供的一系列強(qiáng)大的特性,能夠讓W(xué)eb應(yīng)用程序的開發(fā)變得更加方便、快速。

          Socket.io是一個(gè)開源、跨平臺(tái)且支持客戶端和服務(wù)器端進(jìn)行實(shí)時(shí)雙向通信的WebSocket庫[9-10]。它包括客戶端的JavaScript庫和服務(wù)器端的Node.js模塊。它能夠根據(jù)不同的客戶端自動(dòng)在一些實(shí)時(shí)通信機(jī)制中選擇合適的一個(gè)來實(shí)現(xiàn)Web實(shí)時(shí)應(yīng)用。當(dāng)使用支持HTML5技術(shù)的瀏覽器客戶端進(jìn)行實(shí)時(shí)通信時(shí),Socket.io會(huì)選譯效率最高、消耗服務(wù)器資源最少的WebSocket協(xié)議來實(shí)現(xiàn)實(shí)時(shí)通信,并在瀏覽器客戶端發(fā)生變化時(shí)自動(dòng)選擇其他方式進(jìn)行通信。因此,Socket.io能有效解決跨平臺(tái)的實(shí)時(shí)通信問題。

          3.1在線聊天室的設(shè)計(jì)

          在線聊天室的設(shè)計(jì)分為客戶端與服務(wù)器端兩個(gè)部分,其實(shí)時(shí)通信過程如圖5所示。

          3.2在線聊天室的實(shí)現(xiàn)

          在線聊天室的實(shí)現(xiàn)也分為客戶端和服務(wù)器端兩個(gè)部分。其中客戶端通過使用HTML5、層疊樣式表以及JavaScript來實(shí)現(xiàn)用戶名的驗(yàn)證功能、消息顯示功能和數(shù)據(jù)傳送功能。服務(wù)器端通過JavaScript來實(shí)現(xiàn)與客戶端的實(shí)時(shí)通信功能、廣播功能以及在線用戶列表的管理功能。圖8用戶登錄成功時(shí)客戶端與服務(wù)器端的交互圖3.2.1客戶端的實(shí)現(xiàn)過程

          當(dāng)有新的客戶端用戶加入聊天室時(shí),已在聊天室的用戶將會(huì)接收到新用戶加入聊天室的消息且用戶列表會(huì)被即時(shí)更新以顯示新加入的用戶名。新用戶所在頁面也會(huì)被更新以顯示所有在線用戶。當(dāng)有客戶端用戶在聊天室發(fā)送聊天消息時(shí),該消息會(huì)被即時(shí)廣播給所有在線用戶。當(dāng)有客戶端用戶退出聊天室時(shí),其他在線用戶將會(huì)接收到該用戶退出聊天室的消息且用戶列表會(huì)被實(shí)時(shí)更新以移除下線用戶的用戶名。下線用戶所在的頁面也會(huì)進(jìn)行相應(yīng)的調(diào)整。若用戶在聊天過程中直接退出聊天室頁面,則所有在線用戶都會(huì)收到該用戶退出聊天室的消息。客戶端的具體實(shí)現(xiàn)流程如圖6所示。

          3.2.2服務(wù)器端的實(shí)現(xiàn)過程

          當(dāng)有多個(gè)客戶端用戶存在時(shí),服務(wù)器端的主要功能包括管理所有在線用戶的用戶列表以及廣播它們之間的聊天消息。服務(wù)器端的具體實(shí)現(xiàn)流程如圖7所示。

          3.2.3客戶端和服務(wù)器端的交互過程

          本文主要針對(duì)用戶成功登錄進(jìn)聊天室的情況進(jìn)行介紹。當(dāng)用戶成功登錄在線聊天室時(shí),客戶端和服務(wù)器端通過觸發(fā)事件進(jìn)行實(shí)時(shí)交互,其具體交互過程如圖8所示。

          4結(jié)論

          傳統(tǒng)的Web實(shí)時(shí)通信方案是在長(zhǎng)期的應(yīng)用實(shí)踐中發(fā)展出來的,其中比較常用的是基于AJAX的長(zhǎng)輪詢方式和基于Iframe的流方式。但由于這兩種方案都是采用基于HTTP的通信方式,因此當(dāng)Web實(shí)時(shí)應(yīng)用采用這兩種方案時(shí)會(huì)產(chǎn)生難以解決的問題。而WebSocket協(xié)議的出現(xiàn)適時(shí)地提供了一種新的Web實(shí)時(shí)通信方案,它能夠更加快捷有效地構(gòu)建出簡(jiǎn)單高效的Web實(shí)時(shí)應(yīng)用。因此,本文通過分析傳統(tǒng)的Web實(shí)時(shí)通信方案的不足之處,不僅從理論層面分析了基于WebSocket的Web實(shí)時(shí)通信方案的優(yōu)勢(shì),而且還通過使用HTML5、層疊樣式表和JavaScript編寫了具體的應(yīng)用實(shí)例簡(jiǎn)單的實(shí)現(xiàn)了該方案。隨著WebSocket協(xié)議的不斷發(fā)展,基于WebSocket的Web實(shí)時(shí)通信方案將會(huì)被廣泛應(yīng)用。

          參考文獻(xiàn)

          [1] 蔡驥然,曹海傳.B/S架構(gòu)下基于OPC與Comet技術(shù)的實(shí)時(shí)監(jiān)控系統(tǒng)[J].計(jì)算機(jī)應(yīng)用,2012,32(z2):214216.

          [2] 文愛平,文德民.基于IE瀏覽器的Ajax Comet架構(gòu)[J].電腦知識(shí)與技術(shù),2010,6(17):46464648.

          [3] 張家愛,孫飛.Comet技術(shù)在Web開發(fā)中的研究與應(yīng)用[J].煤炭技術(shù),2011,30(12):153154.

          [4] 陸晨,馮向陽,蘇厚勤.HTML5 WebSocket握手協(xié)議的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2015,32(1):128131,178.

          [5] 李代立,陳榕.WebSocket在Web實(shí)時(shí)通信領(lǐng)域的研究[J].電腦知識(shí)與技術(shù),2010,6(28):79237925,7935.

          [6] 周東仿,孟寧.基于WebSocket的網(wǎng)絡(luò)設(shè)備自發(fā)現(xiàn)機(jī)制[J].計(jì)算機(jī)工程與設(shè)計(jì),2013,34(2):392396,438.

          [7] 溫照松,易仁偉,姚寒冰.基于WebSocket的實(shí)時(shí)Web應(yīng)用解決方案[J].電腦知識(shí)與技術(shù),2012,8(16):38263828.

          [8] 王金龍,宋斌,丁銳.Node.js:一種新的Web應(yīng)用構(gòu)建技術(shù)[J].現(xiàn)代電子技術(shù),2015,38(6):7073.

          [9] 李廣文.基于Socket.io的互動(dòng)教學(xué)即時(shí)反饋系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].中國(guó)現(xiàn)代教育裝備,2012(18):1012.

          [10] 黃經(jīng)贏.基于Socket.io+Node.js+Redis構(gòu)建高效即時(shí)通訊系統(tǒng)[J].現(xiàn)代計(jì)算機(jī)(專業(yè)版),2014(19):6264,69.


          主站蜘蛛池模板: 老鸭窝毛片一区二区三区| 久久精品一区二区三区AV| 亚洲日本一区二区三区在线不卡| 久久久久成人精品一区二区| 国产伦精品一区二区三区免费下载| 亚洲熟女少妇一区二区| 一区二区三区精品高清视频免费在线播放 | 一区二区三区伦理高清| 国产精品香蕉一区二区三区| 亚洲av鲁丝一区二区三区| 国产怡春院无码一区二区| 国产高清在线精品一区| 色偷偷av一区二区三区| 久久99国产精品一区二区| 成人区精品人妻一区二区不卡| 国产91精品一区二区麻豆亚洲| 国产日韩精品一区二区三区| 日本精品视频一区二区| 国产熟女一区二区三区五月婷| 国产微拍精品一区二区| 在线视频一区二区三区四区| 天天躁日日躁狠狠躁一区| 麻豆国产在线不卡一区二区| 国产成人无码精品一区不卡| 天天视频一区二区三区| 国内精品视频一区二区三区| 在线视频国产一区| 国产suv精品一区二区6| 无码人妻精品一区二区蜜桃百度 | 精品一区二区在线观看| 久久精品动漫一区二区三区| 无码人妻一区二区三区在线视频| 亚洲一区综合在线播放| 日韩一区二区视频| 日韩福利视频一区| 国产成人精品久久一区二区三区av | 亚洲AⅤ无码一区二区三区在线 | 久久久91精品国产一区二区| 69福利视频一区二区| 国产精品一区视频| 精品无码成人片一区二区|