使用 WebSockets 的 9 個應用場景

oschina發表於2013-11-20

  WebSockets支援及時資料交換,並被所有現代瀏覽器支援。請直接在你的web apps上使用它吧。

  至所有我的讀者:幸運的是我目前在巴西進行Scaling systems專案,享受32度的氣溫,吃著鹹八寶飯還有凱匹林納雞尾酒。同時根據你們的要求更新著部落格,我邀請了我主要的成員僑納琛弗里曼在我離開的時間指導你們。

  沒有其他技術能夠像WebSocket一樣提供真正的雙向通訊,許多web開發者仍然是依賴於ajax的長輪詢來實現。(注:我認為長輪詢是富於創造性和多功能性的,雖然這只是一個不太完美的解決辦法(hack))對Websocket缺少熱情,也許是因為多年前他的安全性的脆弱,抑或者是缺少瀏覽器的支援,不管怎樣,這兩個問題都已經被解決了。

  決定手頭的工作是否需要使用WebSocket技術的方法很簡單:

  • 你的應用提供多個使用者相互交流嗎?
  • 你的應用是展示伺服器端經常變動的資料嗎?

  如果你的回答是肯定的,那麼請考慮使用WebSocket。如果你仍然不確定,並想要更多的靈感,這有一些殺手鐗的案例。

  1.社交訂閱

  對社交類的應用的一個裨益之處就是能夠即時的知道你的朋友正在做什麼。雖然聽起來有點可怕,但是我們都喜歡這樣做。你不會想要在數分鐘之後才能知道一個家庭成員在餡餅製作大賽獲勝或者一個朋友訂婚的訊息。你是線上的,所以你的訂閱的更新應該是實時的。

  2.多玩家遊戲

  網路正在迅速轉變為遊戲平臺。在不使用外掛(我指的是Flash)的情況下,網路開發者現在可以在瀏覽器中實現和體驗高效能的遊戲。無論你是在處理DOM元素、CSS動畫,HTML5的canvas或者嘗試使用WebGL,玩家之間的互動效率是至關重要的。我不想在我扣動扳機之後,我的對手卻已經移動位置。

  3.協同編輯/程式設計

  我們生活在分散式開發團隊的時代。平時使用一個文件的副本就滿足工作需求了,但是你最終需要有一個方式來合併所有的編輯副本。版本控制系統,比如Git能夠幫助處理某些檔案,但是當Git發現一個它不能解決的衝突時,你仍然需要去跟蹤人們的修改歷史。通過一個協同解決方案,比如WebSocket,我們能夠工作在同一個文件,從而省去所有的合併版本。這樣會很容易看出誰在編輯什麼或者你在和誰同時在修改文件的同一部分。

  4.點選流資料

  分析使用者與你網站的互動是提升你的網站的關鍵。HTTP的開銷讓我們只能優先考慮和收集最重要的資料部分。然後,經過六個月的線下分析,我們意識到我們應該收集一個不同的判斷標準——一個看起來不是那麼重要但是現在卻影響了一個關鍵的決定。與HTTP請求的開銷方式相比,使用Websocket,你可以由客戶端傳送不受限制的資料。想要在除頁面載入之外跟蹤滑鼠的移動?只需要通過WebSocket連線傳送這些資料到伺服器,並儲存在你喜歡的NoSQL資料庫中就可以了(MongoDB是適合記錄這樣的事件的)。現在你可以通過回放使用者在頁面的動作來清楚的知道發生了什麼。

  5.股票基金報價

  金融界瞬息萬變——幾乎是每毫秒都在變化。我們人類的大腦不能持續以那樣的速度處理那麼多的資料,所以我們寫了一些演算法來幫我們處理這些事情。雖然你不一定是在處理高頻的交易,但是,過時的資訊也只能導致損失。當你有一個顯示盤來跟蹤你感興趣的公司時,你肯定想要隨時知道他們的價值,而不是10秒前的資料。使用WebSocket可以流式更新這些資料變化而不需要等待。

  6.體育實況更新

  現在我們開始討論一個讓人們激情澎湃的愚蠢的東西——體育。我不是運動愛好者,但是我知道運動迷們想要什麼。當愛國者在打比賽的時候,我的妹夫將會沉浸於這場比賽中而不能自拔。那是一種瘋狂痴迷的狀態,完全發自內心的。我雖然不理解這個,但是我敬佩他們與運動之間的這種強烈的聯絡,所以,最後我能做的就是給他的體驗中降低延遲。如果你在你的網站應用中包含了體育新聞,WebSocket能夠助力你的使用者獲得實時的更新。

  7.多媒體聊天

  視訊會議並不能代替和真人相見,但當你不能在同一個屋子裡見到你談話的物件時,視訊會議是個不錯的選擇。儘管視訊會議私有化做的“不錯”,但其使用還是很繁瑣。我可是開放式網路的粉絲,所以用WebSockets getUserMedia API和HTML5音視訊元素明顯是個不錯的選擇。WebRTC的出現順理成章的成為我剛才概括的組合體,它看起來很有希望,但其缺乏目前瀏覽器的支援,所以就取消了它成為候選人的資格。

  8.基於位置的應用

  越來越多的開發者借用移動裝置的GPS功能來實現他們基於位置的網路應用。如果你一直記錄使用者的位置(比如執行應用來記錄運動軌跡),你可以收集到更加細緻化的資料。如果你想實時的更新網路資料儀表盤(可以說是一個監視運動員的教練),HTTP協議顯得有些笨拙。借用WebSocket TCP連結可以讓資料飛起來。

  9.線上教育

  上學花費越來越貴了,但網際網路變得更快和更便宜。線上教育是學習的不錯方式,尤其是你可以和老師以及其他同學一起交流。很自然,WebSockets是個不錯的選擇,可以多媒體聊天、文字聊天以及其它優勢如與別人合作一起在公共數字黑板上畫畫...

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

相關文章