1. 程式人生 > >使用 WebSockets 的 9 個應用場景

使用 WebSockets 的 9 個應用場景

  沒有其他技術能夠像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是個不錯的選擇,可以多媒體聊天、文字聊天以及其它優勢如與別人合作一起在公共數字黑板上畫畫... 


相關推薦

使用 WebSockets9 應用場景

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

Oracle442應用場景---------PL/SQL基礎

筆記 有時 統計函數 upper rman 函數 分支語句 數據庫 any ----------------------------------------------------------------------------------- 備份和恢復數據庫略過。在

區塊鏈9應用場景盤點

        對於鏈圈小白,經常都有一個這樣的疑問,區塊鏈到底能幹嘛?有什麼用?下面本文就為大家介紹下區塊鏈的9大應用場景,讓你一文讀懂區塊鏈到底應該怎麼玩。 一、數字貨幣   數字貨幣大致可以分類為三類:總量恆定型、錨定型、政府發行型。

馬雲留給阿里的財富:4應用場景落地+90區塊鏈專利

最近區塊鏈和網際網路的圈子都挺熱鬧,一邊是熊市持續低靡惹得人心惶惶,國家監管下的自媒體風聲鶴唳;一邊是網際網路大佬們周邊新聞滿天飛,這其中最大的一枚炸彈便是馬雲宣佈自己即將退休,他將於明年的9月10日,也就是阿里巴巴的20週年,不再擔任阿里巴巴集團董事局主席。 當初

Redis的7應用場景

目錄 二:計數器 三:佇列 七:排行榜 一:快取——熱資料 熱點資料(經常會被查詢,但是不經常被修改或者刪除的資料),首選是使用redis快取,畢竟強大到冒泡的QPS和極強的穩定性不是所有類似工具都有的,而且相比於memcached還提供了豐富的資料

【 專欄 】- Oracle442應用場景

Oracle442個應用場景 本專欄是我學習書籍 Oracle學習筆記 這本書終總結出來的,這本書中總結了各個知識點,並將各個知識點以應用場景的形式給出實際的程式碼。通過先細緻的學習,總結成了博文,方便以後的複習,也希望大家一同

訊息佇列常見的 5 應用場景

一、簡介 訊息佇列中介軟體是分散式系統中重要的元件,主要解決應用耦合,非同步訊息,流量削鋒等問題。實現高效能、高可用、可伸縮和最終一致性架構。使用較多的訊息佇列有ActiveMQ、RabbitMQ、ZeroMQ、Kafka、MetaMQ、RocketMQ。 二、訊息佇列應

Docker最大化實際專案價值的八應用場景

在過去一年,行業和使用者對Docker(既是一項技術又是一家公司)的認識大有提升。可以這麼說,它是我在職業生涯中見過的發展最迅猛的技術,採用速度之快前所未有。 這項技術在一些重要企業已得到了採用,並得到了包括微軟和谷歌在內的各大軟體廠商的認可。這家公司獲得

幕後英雄的用武之地——淺談Java內部類的四應用場景

                                                                    幕後英雄的用武之地                                                         ——淺談

《機器學習實戰》學習筆記:k-近鄰演算法的兩應用場景

之前學習了k-近鄰演算法的實現後,參考《機器學習實戰》中的例子進行了k-近鄰演算法的測驗,主要測試了針對約會網站和手寫識別系統的資料分類,這兩個測試使用的是《機器學習實戰》提供的資料集。 在編寫函式前,需在.py檔案中新增以下內容: from numpy

15Nodejs應用場景

程序開發 包括 web 核心 協議 soc 異常處理 軟件 webkit 15個Nodejs應用場景 我們已經對Nodejs有了初步的了解,接下來看看Nodejs的應用場景。 2.1 Web開發:Express + EJS + Mongoose/MySQL express

JSP四域對象的應用場景

應用場景 購物 path ont let 當前 場景 servlet session request 如果客戶向服務器發請求,產生的數據,用戶看完就沒用了,像這樣的數據就存在request域 比如新聞數據,屬於用戶看完就沒用的 session 如果客戶向服務器發請求,產生的

現有n 亂序數,都大於 1000 ,讓取排行榜前十,時間復雜度為o(n), top10, 或者 topK,應用場景榜單Top:10

刪除 有序列表 urn 排行榜 i+1 shuffle pytho 一個 .sh 一、topK python實現 def topk(k, lst): top = [0 for i in range(k)] #生成一個長度為K 的有序列表 for item i

Docker的真實應用場景

【編者的話】Flux 7介紹了常用的8個Docker的真實使用場景,分別是簡化配置、程式碼流水線管理、提高開發效率、隔離應用、整合伺服器、除錯能力、多租戶環境、快速部署。我們一直在談Docker,Docker怎麼使用,在怎麼樣的場合下使用?也許本文可以幫到你。有需要交流的地方

應用到大規模真實工業場景的神經網路控制系統在谷歌上線了

      即便深度學習和其它機器學習方法近幾年已經取得了不小的發展,但是把它們直接應用在真實工業場景中、讓它們直接控制工業系統還未曾見到。深度學習本身缺乏魯棒性、面對新狀況難以預測行為等一些特性固然是重要的掣肘之處,如何讓演算法逐步提高控制範圍、協調與人類的協作方式也是難題。DeepMind 和谷歌最近就做

驚豔!9不可思議的 HTML5 Canvas 應用試驗

  HTML5 <canvas> 元素給網頁中的視覺展示帶來了革命性的變化。Canvas 能夠實現各種讓人驚歎的視覺效果和高效的動畫,在這以前是需要 Flash 支援或者 JavaScript 才能實現的。HTML5 Canvas 提供了通過 繪製圖形的方法,功能強大。今天這篇文章向大家展示9個讓

分享十五NodeJS應用場景

1 Web開發:Express + EJS + Mongoose/MySQL express 是輕量靈活的Nodejs Web應用框架,它可以快速地搭建網站。Express框架建立在Nodejs內建的Http模組上,並對Http模組再包裝,從而實際Web請求處理的功能。 ejs是一個嵌入的Javascri

strom學習總結——我從三緯度開始:maven工程、徐明明部落格和應用場景

關於storm學習,我從三個緯度開始:maven工程、徐明明部落格和應用場景。 1、maven工程 pom檔案配置 <repositories>  <repository>  <id>central</id>  <na

Docker 的真實應用場景

【編者的話】Flux 7介紹了常用的8個Docker的真實使用場景,分別是簡化配置、程式碼流水線管理、提高開發效率、隔離應用、整合伺服器、除錯能力、多租戶環境、快速部 署。我們一直在談Docker,Docker怎麼使用,在怎麼樣的場合下使用?也許本文可以幫到你。有需要交流

設計模式的應用場景(9)--裝飾模式

裝飾模式 定義:裝飾模式以對客戶端透明的方式擴充套件物件的功能,是繼承方案的一個替代方案,提供比繼承更多的靈活性。 優點:能夠提供比使用繼承關係更加靈活的拓展物件的功能,它可以動態增加物件的功能並且可以隨意組合這些功能。 缺點:使用裝飾模式進行設計往往會