認識它
消息推送這個東西從有了互聯網就出現了,但直到出現了HTML5的Websocket,這個東西才算真的,更好了得到了解決,因為之前的方式,我們公認為,它對服務器的壓力太大了,客戶端不斷的在做polling工作,直到服務端有了消息,然后將消息獲取過來,這種方式,始終是被動式的,並且,通過瀏覽器發送的請求,在HTML5出現之前都是HTTP方式的,這種一個請求,一個響應的方式不能很好的實現一個長鏈接的保持,直到出現了websocket,它可以使一個客戶端與服務端保持一個長鏈接,這事實上,也是實現服務器消息推送到客戶端的基礎。
它的發展歷史
2000年之前為第一波消息推送技術,使用的概念叫Webcasting。大致思想就是用戶來服務端注冊一個或者多個通道channel,然后服務端確定給某些個channel或某個channel發送消息。2000到2007年最火的詞叫comet,比如有Polling(這個是最普通的輪詢),Long Polling(把HTTP的響應鎖住,當有消息時,通過channel返回客戶端),但是不管什么技術,都僅限瀏覽器,而又因為瀏覽器只能發起HTTP的單向的通信請求,所以,人們就想起了更穩定的長鏈接方式socket,但是Socket方式是走TCP協議的,瀏覽器如何能發起TCP連接呢?HTML5的Websocket技術就解決了這個問題。
新協議,老技術
Websocket其實是一些老技術的結合,本身並不是一種新的技術,但是一種新的協議,它的地址形式如ws://192.168.0.3:8090,wss://192.168.0.3:8090,后面的地址形式是加密的,就是HTTP協議地址有http和https一樣。
Websocket它首先向服務器發一個HTTP請求,與服務器握手成功后,再以TCP的方式進行數據傳輸,所以Websocket其實是結合了HTTP和TCP協議的一種新的協議方式,但本身的技術是老的,呵呵。
百度百科對websocket的闡述
目標
WebSocket 規范的目標是在瀏覽器中實現和服務器端雙向通信。雙向通信可以拓展瀏覽器上的應用類型,例如實時的數據推送(股票行情)、游戲、聊天等.
背景
原理
目錄
第一回 認識Websocket及原來的消息推送方式
第二回 SignalR的出現,改變了這一切
第三回 SignalR與MVC搭建消息推送環境
相關參考文章
http://www.asp.net/signalr
http://baike.baidu.com/view/3623887.htm
