Spring4.3+Webscket 實現聊天、消息推送詳解原創(序)

我想在記錄這篇文章以前,先寫點兒東西,由於websocket的事情,遭受痛苦不淺,特此記錄該篇文章,只爲那些跟我同樣由於此問題正在遭受痛苦的兄弟姐妹。我才疏學淺,不當之處還望高人批評指正。html

先說下背景吧,由於公司項目緣由,須要搞web在線聊天,項目部署結構也比較簡單,nginx負載均衡,tomcat集羣部署。 聊天方案想了有多種,包括Red5 flex方案、ajax輪詢方案、pomelo方案,html5websockt方案,其實,我的認爲pomelo方案是最優路線,怎奈工做就是工做,由於時間限制,此路學習成本有點大,放棄了。 再說red5 flex方案,以前搞過多路視頻聊天、視頻直播,其實此路也蠻好的,前端flash好處是能夠解決各類瀏覽器版本的問題,多媒體流服務器一個是佔用資源比較大,也受鏈接數限制,同時也須要匹配集羣,怎奈公司不可能花大把資金爲了聊天再投入多媒體流服務器,耗時間也不短,備選。 再說ajax輪詢方案,目前不少網站用的方式,好處是可借鑑例子、第三方插件等衆多,上手簡單,容易。很差的地方也顯而易見,服務器要承載較大的壓力,pass。 websokcet方案:html5裏面比較新的東西,新一代客戶端-服務器的異步通訊方法。取代了單個的TCP套接字,使用ws或wss協議,可用於任意的客戶端和服務器程序。WebSocket目前由W3C進行標準化,上手簡單,且可同步移植到web app。劣勢也挺明顯,版本低一點的瀏覽器不支持,特別是IE系列10如下的版本。備選。前端

以上幾種方案,除了websocket沒有搞過以外,其餘幾項都有涉獵,想搞明白一個東西的好與壞,必須得深刻其中,而不是隻聽別人的三言兩語就能給一件事情下了定義。我想知道websocket的實質,只能作一下深刻的瞭解,自動動手來吧。但是整個學習的過程,並非那麼的順暢,能夠說用擁堵來講。說一下痛苦經歷吧,其實,真正走完這條路後感受其實,它很簡單,可是爲何中間痛苦了呢?我只想說一個字:恨。html5

我想,可能不少人遇見問題的時候,第一步可能就是打開度娘,而後搜索,我認可度孃的搜索能力,幾乎國內沒有人能匹敵,可是,一直被一個問題困擾,就是去重問題,不管你搜索什麼,你會發現,N多篇文章寫的都是同一件事情,由於有太多太多的人不停的轉載同一篇文章,其二,怎奈對於websocket搜出來的東西,大多數人寫的東西,要麼是跟走馬觀花同樣,就那麼一點,要麼就是寫的很淺顯,還有一種更讓人頭疼的狀況,你會在這些文章裏面發現了多種不一樣的實現方式,五花八門,到底哪一種是最優?該選誰?讓人頭大, 耗了三天的時間,來在網上看各類文章,感覺也只有一個字:懵。從新理了理思緒,花了剩餘6天的時間,各類源碼,各類api,縷清了各類線,並實現了本身想要的東西,現將本身的認知以及學習中遇見的各類問題,作一個系統的記錄。代碼中我將盡量的用更多的註釋去闡明問題以及各類代碼的用途。後面會上傳一個示例的源代碼。共同窗習,共同進步。nginx

相關文章
相關標籤/搜索