婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 搭建websocket消息推送服務,必須要考慮的幾個問題

搭建websocket消息推送服務,必須要考慮的幾個問題

熱門標簽:承德地圖標注公司收費 臨沂ai電銷機器人招商 鶴壁外呼系統公司 華創e路航彩票銷售點地圖標注 外呼系統號顯示星號怎么看 揭陽電腦外呼系統公司 銀川語音外呼系統中心 suitecrm 地圖標注 高德地圖標注常顯

近年,不論是正在快速增長的直播,遠程教育以及IM聊天場景,還是在常規企業級系統中用到的系統提醒,對websocket的需求越來越大,對websocket的要求也越來越高。從早期對websocket的應用僅限于少部分功能和IM等特殊場景,逐步發展為追求支持高并發,百萬、千萬級每秒通訊的高可用websocket服務。

面對各種新場景對websocket功能和性能越來越高的需求,不同的團隊有不同的選擇,有的直接使用由專業團隊開發的成熟穩定的第三方websocket服務,有些則選擇自建websocket服務。

作為一個具有多年websocket開發經驗的老程序猿,經歷了GoEasy企業級websocket服務從無到有,從小到大的過程,此文是根據過去幾年在GoEasy開發過程中踩過的坑,以及為眾多開發團隊提供websocket服務、與眾多開發者交流中的總結的一些經驗和體會。

這次主要從搭建websocket服務的基本功能和特性方面做一些分享,下次有機會再從構建一個高可用websocket時要面對的高并發,海量消息,集群容災,橫向擴展,以及自動化運維等方面進更多的分享。

以下幾點是個人認為在構建websocket服務時必須要考慮的一些技術特性以及能顯著提高用戶體驗的功能,供各位同學參考:

1.建立心跳機制
心跳機制幾乎是所有網絡編程的第一步,經常容易被新手忽略。因為在websocket長連接中,客戶端和服務端并不會一直通信,如果雙方長期沒有溝通則都不清楚彼此當前狀態,所以需要發送一段很小的報文告訴對方“我還活著”。另外還有兩個目的:
服務端檢測到某個客戶端遲遲沒有心跳過來可以主動關閉通道,讓它下線;
客戶端檢測到某個服務端遲遲沒有響應心跳也能重連獲取一個新的連接。

2.建立具有良好兼容性的客戶端SDK
雖說現在主流瀏覽器都支持websocket,但在編碼中還是會遇到瀏覽器兼容性問題,而且通過websocket通信的客戶端早已不僅限于各種web瀏覽器,還包括越來越多的APP,小程序。因此就要求構建的websocket服務必須能夠很友好的支持各種客戶端。最好的方式就是構建一個能夠兼容所有主流瀏覽器、小程序和APP,以及uni-app、vue、react-native等目前常見的各種前端框架的客戶端SDK,這樣不論公司的各個項目使用什么樣的前端技術,都能夠快速的集成websocket服務。

3.斷網自動重連和消息補發機制
移動互聯網時代,終端用戶所處的網絡環境多樣且復雜,如用戶進出電梯,出入地下室或地鐵等網絡不穩定的場所,或其他原因導致的網絡不穩定都是很常見的場景。因此,一個可靠的websocket服務必須具備完善的斷網自動重連機制。確保斷網后,網絡一旦恢復,能第一時間自動重新建立長連接,并且能夠立即補發在網絡不穩定期間發送的消息。

4.離線消息
基礎的Websocket通訊從技術上來說,消息送達的前提條件就是建立起一個長連接,沒有建立網絡連接就來討論通訊那是耍流氓。但是從使用者的角度上來說,隨手關閉瀏覽器,或者將小程序、APP進程直接殺掉而導致網絡連接斷開的情況是隨時都在發生的。然后我們下意識的期待,就是我下次打開瀏覽器訪問網頁,或者打開APP時,能夠收到用戶離開系統期間的所有信息。從技術上這是一個跟websocket沒有多大關系的需求,但實際上卻是websocket服務不可或缺的基本特性,也是一個能夠極大提升用戶體驗的功能。

5.上下線提醒,客戶端在線列表
掌握當前系統有哪些用戶在線,捕捉用戶上下線事件,是搭建一個企業級websocket服務,必不可少的特性,尤其是開發IM和游戲類產品。

6.支持歷史消息查詢
websocket服務,某種意義也是屬于一個消息系統,對于歷史消息的查詢需求,是無法繞開的話題。比如IM系統中常見的歷史消息,因此在websocket服務內部實現一個高速,可靠的消息隊列機制來支持websocket服務實現歷史消息的查詢就是一個必須的工作。

7.消息的壓縮機制
不論是為了保證消息通訊的速度和實時性,還是為了節約流量和帶寬費用,或者是出于提高網卡的使用效率和增加系統的吞吐量,在通訊過程中對消息進行必要的壓縮都是必不可少的。

除了需要考慮以上七點以外,筆者認為,還有幾個問題也是很值得初學者積極關注的:

1.緩存和持久化
選擇合適的消息緩存機制,是企業級websocket服務保證性能必須要考慮的問題。

2.異步調用
要支持大量消息通訊的高性能系統,必然推薦異步調用。若設計為同步調用,調用方就需要一直等待被調用方完成。如果一層一層的同步調用下去,所有的調用方需要相同的等待時間,調用方的資源會被大量的浪費。更糟糕的是一旦被調用方出問題,其他調用就會出現多米諾骨牌效應跟著出問題,導致故障蔓延。收到請求立即返回結果,然后再異步執行,不僅可以增加系統的吞吐量,最大的好處是讓服務之間的解耦更為徹底。

3.獨立于業務和標準化
盡管在一個web項目中可以同時存在常規http服務和websocket服務,尤其對性能要求不高的單應用web系統,這種方式更簡單,更便于維護。但對于性能和可用性高的企業級系統或者互聯網平臺,更好的方式,是將websocket服務作為一個單獨的微服務來進行設計,避免和常規的http服務搶占資源,導致系統性能不可控,同時也更便于橫向擴展。

一個設計良好的企業級websocket服務應該是一個獨立于業務系統、標準化的單獨存在的技術性微服務,能夠作為公司基礎架構的一部分為公司的所有項目提供通訊服務。

4.冪等性和重復消息的過濾
所謂冪等性,就是一次和多次請求一個接口都應該具有同樣的后果。為什么需要?對每個接口的調用都會有三種可能的結果:成功,失敗和超時。對最后一種的原因很多可能是網絡丟包,可能請求沒有到達,也有可能返回沒有收到。于是在對接口的調用時往往都會有重試機制,但重試機制很容易導致消息的重復發送,從用戶層面這往往是不可接受的,因此在接口的設計時,我們就需要考慮接口的冪等性,確保同一條消息發送一次和十次都不回導致消息的重復到達。

5.支持QoS 服務質量分級
其實對于上一點消息重復的問題,行業已經有了解決方案和標準規范,對于消息到達率和重復,常用的手段就是通過消息確認的方式來確保消息到達,要求越高,意味著確認機制越復雜,成本越高。為了在成本和到達率之間有很好的平衡,通常對消息系統的服務質量(QoS)分為以下三個級別 :

QoS 0(At most once):“最多發一次”,意味著發送就可以了,不需要確認機制,發送了即可,適用于要求不高的場景,可以接受一定的不到達率,成本最低。

QoS 1(At least once):“至少發一次”,意味著發送方必須明確收到接收方的確認信號,否則就會反復發,每條消息至少需要兩次通信來確認到達,可以接受一些消息被重發,但成本不高 。

QoS 2(Exactly once):“確保只發一次”,意味著每條消息只能到達一次,且不允許重復到達,為了達到這個目標就需要雙方至少通訊三次,成本最高。

一個完善的websocket服務面對不同的應用場景,應該能夠支持選擇不同等級的QoS,在成本和服務質量之間取得平衡。

最后
雖然websocket已經廣泛的應用于各種系統和平臺,但如果要搭建一個滿足企業級或者大型互聯網平臺的可靠、安全穩定的websocket服務,對于沒有經驗的同學,在具體的技術實踐過程依然是有不少的坑要踩。

對websocket服務有較高要求,選擇成熟可靠的第三方websocket服務其實也是一個成本更低和高效的選擇。GoEasy作為國內領先的第三方websocket消息平臺,已經穩定運行了5年時間,支持千萬級消息并發,除了兼容所有常見的瀏覽器以外,同時也兼容uni-app,各種小程序,以及vue、react-native等常見的前端框架。

希望本文能為初次搭建websocket服務的同學在思路上有所幫助和參考,也歡迎各位前輩多多批評指正,同時也希望未來有機會就更多的技術與大家進行交流。

GoEasy官網:https://www.goeasy.io/

到此這篇關于搭建websocket消息推送服務,必須要考慮的幾個問題的文章就介紹到這了,更多相關websocket消息推送服務內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • php實現websocket實時消息推送
  • Java中websocket消息推送的實現代碼
  • 詳解在Spring Boot框架下使用WebSocket實現消息推送
  • Android中使用WebSocket實現群聊和消息推送功能(不使用WebView)
  • Spring和Websocket相結合實現消息的推送

標簽:七臺河 三沙 棗莊 忻州 萊蕪 咸寧 許昌 汕尾

巨人網絡通訊聲明:本文標題《搭建websocket消息推送服務,必須要考慮的幾個問題》,本文關鍵詞  搭建,websocket,消息,推送,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《搭建websocket消息推送服務,必須要考慮的幾個問題》相關的同類信息!
  • 本頁收集關于搭建websocket消息推送服務,必須要考慮的幾個問題的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    精品国产一区久久| 久久精品国产秦先生| 国产一区二区三区av电影| 一色屋精品亚洲香蕉网站| 精品久久久久久久久久久久久久久 | 欧美三级视频在线观看| 国产精品一二三四区| 视频一区在线播放| bt7086福利一区国产| 免费成人av在线| 中文字幕一区二区三区视频| 日韩av中文在线观看| 久久99九九99精品| 色香色香欲天天天影视综合网| 日韩免费在线观看| 国产激情精品久久久第一区二区 | 国产麻豆一精品一av一免费| 欧美日韩国产美| 国产日韩欧美不卡| 亚洲天堂av老司机| 不卡视频一二三| 天堂久久一区二区三区| 精品免费日韩av| 国产剧情一区二区三区| 欧美国产1区2区| 中文字幕日韩一区| 偷窥国产亚洲免费视频| 久久久五月婷婷| 777久久久精品| 色婷婷亚洲一区二区三区| 国内精品第一页| 日韩国产欧美三级| 国产精品久久久久桃色tv| 欧美不卡一区二区三区| 成人美女在线观看| 久久99精品国产麻豆婷婷洗澡| 亚洲精品欧美激情| 北岛玲一区二区三区四区| 狠狠网亚洲精品| 欧美性猛交一区二区三区精品| 欧美一级片在线| 欧美日韩精品一区二区在线播放| 久久综合资源网| 夜夜精品视频一区二区| 久久国产精品99久久久久久老狼| 成人午夜精品一区二区三区| 在线精品观看国产| 久久九九国产精品| 亚洲成人www| 成人免费视频一区二区| 91精品婷婷国产综合久久| 日韩欧美综合一区| 中文字幕综合网| 国产福利精品导航| 国产在线视频精品一区| 久久www免费人成看片高清| 免费欧美在线视频| 日韩电影在线观看网站| 日韩不卡一二三区| 久久不见久久见中文字幕免费| 美女视频黄免费的久久 | 亚洲三级小视频| 日韩美女视频一区| 久久久久国产精品麻豆| 99久久精品费精品国产一区二区| 91丨九色丨尤物| 欧美精品色综合| 国产精品福利一区二区| 韩国一区二区三区| 日韩一级视频免费观看在线| 国产精品伦理在线| 午夜精品在线视频一区| 粉嫩嫩av羞羞动漫久久久| 91精品福利在线一区二区三区 | 日本美女一区二区三区视频| 精品电影一区二区三区 | 日韩一区二区免费在线电影| 欧美一区二区三区视频免费播放| 欧美大片一区二区| 欧美视频一区二区| 中文字幕亚洲电影| www.亚洲激情.com| 欧美国产成人在线| 成人一区二区三区中文字幕| 欧美xxxxx牲另类人与| 日韩av中文字幕一区二区| 欧美女孩性生活视频| 夜夜精品浪潮av一区二区三区| 91玉足脚交白嫩脚丫在线播放| 久久精品一区二区三区av| 国内精品久久久久影院薰衣草 | 欧美成人伊人久久综合网| 日本不卡一二三区黄网| 日韩一区二区三区av| 精品制服美女丁香| 精品国精品国产| 国产在线播精品第三| 国产亚洲欧美激情| jlzzjlzz亚洲女人18| 日韩码欧中文字| 色婷婷激情一区二区三区| 成人h动漫精品| 亚洲欧洲精品成人久久奇米网| 成人性生交大片免费看视频在线| 国产精品动漫网站| 在线免费观看日本欧美| 亚洲mv在线观看| 欧美三级三级三级| 亚洲视频狠狠干| 欧美三级电影在线看| 免费欧美高清视频| 国产精品久久久久久久裸模 | 亚洲精品久久7777| 亚洲天堂av一区| 欧美主播一区二区三区| 午夜欧美电影在线观看| 欧美videos大乳护士334| 国产传媒日韩欧美成人| 亚洲精品一卡二卡| 日韩视频一区二区三区| 青青草伊人久久| 99r国产精品| 欧美日韩精品一区二区三区四区| 日韩一区国产二区欧美三区| 一区二区三区四区视频精品免费| 成人丝袜高跟foot| 国产三级精品视频| 国产一区日韩二区欧美三区| 91精品一区二区三区久久久久久| 亚洲高清免费观看高清完整版在线观看| 99久久婷婷国产| 国产精品国产三级国产普通话三级| 国产成人精品综合在线观看| 国产亚洲女人久久久久毛片| 成人精品视频.| 亚洲成人激情av| 久久久www免费人成精品| 91丝袜国产在线播放| 91精品国产欧美一区二区| 国产成人免费视频| 亚洲国产精品麻豆| 久久久久久9999| 欧美日韩中文字幕一区| 久久99最新地址| 亚洲精品免费在线播放| 精品国产自在久精品国产| 91丨porny丨在线| 激情欧美一区二区三区在线观看| 国产精品人人做人人爽人人添| 7777精品伊人久久久大香线蕉的 | 日韩一区二区在线播放| 成人午夜av影视| 蜜桃视频一区二区三区 | 美女脱光内衣内裤视频久久网站 | 国产日韩欧美精品在线| 欧美日韩一区二区在线视频| 国产一区二区三区在线观看免费| 亚洲一区二区三区四区五区黄| 久久夜色精品一区| 欧美日韩一区国产| a4yy欧美一区二区三区| 久久91精品久久久久久秒播| 亚洲精品免费电影| 中文字幕欧美区| 久久久久高清精品| 久久亚洲综合av| 日韩女同互慰一区二区| 欧美日本韩国一区二区三区视频| 成人免费福利片| 国产成人精品综合在线观看 | 日韩欧美专区在线| 欧美优质美女网站| 亚洲国产综合视频在线观看| 亚洲日本在线看| 亚洲成人高清在线| 国产在线精品免费| 91美女蜜桃在线| 欧美一区二区大片| 亚洲国产精品av| 亚洲综合999| 国产精品综合视频| 在线观看国产91| 久久一留热品黄| 亚洲国产中文字幕| 国产不卡视频一区| 91精品国产综合久久久久久| 国产欧美一区二区精品性色| 一区二区三区在线视频观看| 美女视频免费一区| 色老汉av一区二区三区| 久久综合九色综合欧美就去吻 | voyeur盗摄精品| 91精品国产欧美一区二区| 欧美韩日一区二区三区四区| 丝袜诱惑制服诱惑色一区在线观看| 国产精品影视网| 欧美日韩国产一二三| 国产欧美日韩另类视频免费观看| 亚洲香肠在线观看| 成人精品一区二区三区四区|