WebSockets支持及時(shí)數(shù)據(jù)交換,并被所有現(xiàn)代瀏覽器支持。請(qǐng)直接在你的web apps上使用它吧。

  至所有我的讀者:幸運(yùn)的是我目前在巴西進(jìn)行Scaling systems項(xiàng)目,享受32度的氣溫,吃著咸八寶飯還有凱匹林納雞尾酒。同時(shí)根據(jù)你們的要求更新著博客,我邀請(qǐng)了我主要的成員僑納琛弗里曼在我離開(kāi)的時(shí)間指導(dǎo)你們。

  沒(méi)有其他技術(shù)能夠像WebSocket一樣提供真正的雙向通信,許多web開(kāi)發(fā)者仍然是依賴于ajax的長(zhǎng)輪詢來(lái)實(shí)現(xiàn)。(注:我認(rèn)為長(zhǎng)輪詢是富于創(chuàng)造性和多功能性的,雖然這只是一個(gè)不太完美的解決辦法(hack))對(duì)Websocket缺少熱情,也許是因?yàn)槎嗄昵八陌踩缘拇嗳?,抑或者是缺少瀏覽器的支持,不管怎樣,這兩個(gè)問(wèn)題都已經(jīng)被解決了。

  決定手頭的工作是否需要使用WebSocket技術(shù)的方法很簡(jiǎn)單:

  如果你的回答是肯定的,那么請(qǐng)考慮使用WebSocket。如果你仍然不確定,并想要更多的靈感,這有一些殺手锏的案例。

  1.社交訂閱

  對(duì)社交類的應(yīng)用的一個(gè)裨益之處就是能夠即時(shí)的知道你的朋友正在做什么。雖然聽(tīng)起來(lái)有點(diǎn)可怕,但是我們都喜歡這樣做。你不會(huì)想要在數(shù)分鐘之后才能知道一個(gè)家庭成員在餡餅制作大賽獲勝或者一個(gè)朋友訂婚的消息。你是在線的,所以你的訂閱的更新應(yīng)該是實(shí)時(shí)的。

  2.多玩家游戲

  網(wǎng)絡(luò)正在迅速轉(zhuǎn)變?yōu)橛螒蚱脚_(tái)。在不使用插件(我指的是Flash)的情況下,網(wǎng)絡(luò)開(kāi)發(fā)者現(xiàn)在可以在瀏覽器中實(shí)現(xiàn)和體驗(yàn)高性能的游戲。無(wú)論你是在處理DOM元素、CSS動(dòng)畫(huà),HTML5的canvas或者嘗試使用WebGL,玩家之間的互動(dòng)效率是至關(guān)重要的。我不想在我扣動(dòng)扳機(jī)之后,我的對(duì)手卻已經(jīng)移動(dòng)位置。

  3.協(xié)同編輯/編程

  我們生活在分布式開(kāi)發(fā)團(tuán)隊(duì)的時(shí)代。平時(shí)使用一個(gè)文檔的副本就滿足工作需求了,但是你最終需要有一個(gè)方式來(lái)合并所有的編輯副本。版本控制系統(tǒng),比如Git能夠幫助處理某些文件,但是當(dāng)Git發(fā)現(xiàn)一個(gè)它不能解決的沖突時(shí),你仍然需要去跟蹤人們的修改歷史。通過(guò)一個(gè)協(xié)同解決方案,比如WebSocket,我們能夠工作在同一個(gè)文檔,從而省去所有的合并版本。這樣會(huì)很容易看出誰(shuí)在編輯什么或者你在和誰(shuí)同時(shí)在修改文檔的同一部分。

  4.點(diǎn)擊流數(shù)據(jù)

  分析用戶與你網(wǎng)站的互動(dòng)是提升你的網(wǎng)站的關(guān)鍵。HTTP的開(kāi)銷讓我們只能優(yōu)先考慮和收集最重要的數(shù)據(jù)部分。然后,經(jīng)過(guò)六個(gè)月的線下分析,我們意識(shí)到我們應(yīng)該收集一個(gè)不同的判斷標(biāo)準(zhǔn)——一個(gè)看起來(lái)不是那么重要但是現(xiàn)在卻影響了一個(gè)關(guān)鍵的決定。與HTTP請(qǐng)求的開(kāi)銷方式相比,使用Websocket,你可以由客戶端發(fā)送不受限制的數(shù)據(jù)。想要在除頁(yè)面加載之外跟蹤鼠標(biāo)的移動(dòng)?只需要通過(guò)WebSocket連接發(fā)送這些數(shù)據(jù)到服務(wù)器,并存儲(chǔ)在你喜歡的NoSQL數(shù)據(jù)庫(kù)中就可以了(MongoDB是適合記錄這樣的事件的)?,F(xiàn)在你可以通過(guò)回放用戶在頁(yè)面的動(dòng)作來(lái)清楚的知道發(fā)生了什么。

  5.股票基金報(bào)價(jià)

  金融界瞬息萬(wàn)變——幾乎是每毫秒都在變化。我們?nèi)祟惖拇竽X不能持續(xù)以那樣的速度處理那么多的數(shù)據(jù),所以我們寫(xiě)了一些算法來(lái)幫我們處理這些事情。雖然你不一定是在處理高頻的交易,但是,過(guò)時(shí)的信息也只能導(dǎo)致?lián)p失。當(dāng)你有一個(gè)顯示盤(pán)來(lái)跟蹤你感興趣的公司時(shí),你肯定想要隨時(shí)知道他們的價(jià)值,而不是10秒前的數(shù)據(jù)。使用WebSocket可以流式更新這些數(shù)據(jù)變化而不需要等待。

  6.體育實(shí)況更新

  現(xiàn)在我們開(kāi)始討論一個(gè)讓人們激情澎湃的愚蠢的東西——體育。我不是運(yùn)動(dòng)愛(ài)好者,但是我知道運(yùn)動(dòng)迷們想要什么。當(dāng)愛(ài)國(guó)者在打比賽的時(shí)候,我的妹夫?qū)?huì)沉浸于這場(chǎng)比賽中而不能自拔。那是一種瘋狂癡迷的狀態(tài),完全發(fā)自內(nèi)心的。我雖然不理解這個(gè),但是我敬佩他們與運(yùn)動(dòng)之間的這種強(qiáng)烈的聯(lián)系,所以,最后我能做的就是給他的體驗(yàn)中降低延遲。如果你在你的網(wǎng)站應(yīng)用中包含了體育新聞,WebSocket能夠助力你的用戶獲得實(shí)時(shí)的更新。

  7.多媒體聊天

  視頻會(huì)議并不能代替和真人相見(jiàn),但當(dāng)你不能在同一個(gè)屋子里見(jiàn)到你談話的對(duì)象時(shí),視頻會(huì)議是個(gè)不錯(cuò)的選擇。盡管視頻會(huì)議私有化做的“不錯(cuò)”,但其使用還是很繁瑣。我可是開(kāi)放式網(wǎng)絡(luò)的粉絲,所以用WebSockets getUserMedia API和HTML5音視頻元素明顯是個(gè)不錯(cuò)的選擇。WebRTC的出現(xiàn)順理成章的成為我剛才概括的組合體,它看起來(lái)很有希望,但其缺乏目前瀏覽器的支持,所以就取消了它成為候選人的資格。

  8.基于位置的應(yīng)用

  越來(lái)越多的開(kāi)發(fā)者借用移動(dòng)設(shè)備的GPS功能來(lái)實(shí)現(xiàn)他們基于位置的網(wǎng)絡(luò)應(yīng)用。如果你一直記錄用戶的位置(比如運(yùn)行應(yīng)用來(lái)記錄運(yùn)動(dòng)軌跡),你可以收集到更加細(xì)致化的數(shù)據(jù)。如果你想實(shí)時(shí)的更新網(wǎng)絡(luò)數(shù)據(jù)儀表盤(pán)(可以說(shuō)是一個(gè)監(jiān)視運(yùn)動(dòng)員的教練),HTTP協(xié)議顯得有些笨拙。借用WebSocket TCP鏈接可以讓數(shù)據(jù)飛起來(lái)。

  9.在線教育

  上學(xué)花費(fèi)越來(lái)越貴了,但互聯(lián)網(wǎng)變得更快和更便宜。在線教育是學(xué)習(xí)的不錯(cuò)方式,尤其是你可以和老師以及其他同學(xué)一起交流。很自然,WebSockets是個(gè)不錯(cuò)的選擇,可以多媒體聊天、文字聊天以及其它優(yōu)勢(shì)如與別人合作一起在公共數(shù)字黑板上畫(huà)畫(huà)...

  原文地址:9-killer-uses-websockets-230771?page=0,1

  哈爾濱品用軟件有限公司致力于為哈爾濱的中小企業(yè)制作大氣、美觀的優(yōu)秀網(wǎng)站,并且能夠搭建符合百度排名規(guī)范的網(wǎng)站基底,使您的網(wǎng)站無(wú)需額外費(fèi)用,即可穩(wěn)步提升排名至首頁(yè)。歡迎體驗(yàn)最佳的哈爾濱網(wǎng)站建設(shè)