亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > HTML5 > 正文

websocket+sockjs+stompjs詳解及實例代碼

2024-09-05 07:19:16
字體:
來源:轉載
供稿:網友

最近有項目需求要用到websocket,剛開始以為很簡單,但是隨著遇到問題,深入了解,才知道websocket并不是想象中的那么簡單,這篇文章主要是考慮websocket在客戶端的使用。

1.http與websocket

http超文本傳輸協議,大家都非常熟悉,http有1.0、1.1、 2.0幾個版本,從http1.1起,默認都開啟了Keep-Alive,保持連接持續性,簡單地說,當一個網頁打開完成后,客戶端和服務器之間用于傳輸http數據的TCP連接不會關閉,如果客戶端再次訪問這個服務器上的網頁,會繼續使用這一條已經建立的連接,這樣就降低了資源的消耗優化性能,但是Keep-Alive也是有時間限制的,還有一個客戶端只能主動發起請求才能獲取返回數據,并不能主動接收后臺推送的數據,websocket便應運而生。

websocket 是html5新增加特性之一,目的是瀏覽器與服務端建立全雙工的通信方式,解決 http 請求-響應帶來過多的資源消耗,同時對特殊場景應用提供了全新的實現方式,比如聊天、股票交易、游戲等對對實時性要求較高的行業領域。

http與websocket都是基于TCP(傳輸控制協議)的,websocket可以看做是對http協議的一個補充

2.SockJs

SockJS是一個JavaScript庫,為了應對許多瀏覽器不支持WebSocket協議的問題,設計了備選SockJs。SockJS 是 WebSocket 技術的一種模擬。SockJS會盡可能對應 WebSocket API,但如果WebSocket 技術不可用的話,會自動降為輪詢的方式。

3.Stompjs

STOMP—— Simple Text Oriented Message Protocol——面向消息的簡單文本協議。

SockJS 為 WebSocket 提供了 備選方案。但無論哪種場景,對于實際應用來說,這種通信形式層級過低。 STOMP協議,來為瀏覽器 和 server 間的 通信增加適當的消息語義。

4.WebSocket、SockJs、STOMP三者關系

簡而言之,WebSocket 是底層協議,SockJS 是WebSocket 的備選方案,也是底層協議,而 STOMP 是基于 WebSocket(SockJS)的上層協議。

1、HTTP協議解決了 web 瀏覽器發起請求以及 web 服務器響應請求的細節,假設 HTTP 協議 并不存在,只能使用 TCP 套接字來 編寫 web 應用。

2、直接使用 WebSocket(SockJS) 就很類似于 使用 TCP 套接字來編寫 web 應用,因為沒有高層協議,就需要我們定義應用間所發送消息的語義,還需要確保連接的兩端都能遵循這些語義;

3、同HTTP在TCP 套接字上添加請求-響應模型層一樣,STOMP在WebSocket 之上提供了一個基于幀的線路格式層,用來定義消息語義;

5.使用實例

安裝 sockjs-client、stompjs;在這兒要注意一下,我在"stompjs": "^2.3.3"這個版本發現,引入stompjs會報一個net模塊找不到,需要在stompjs模塊根目錄下執行npm install,這個是個奇葩的問題。

引入模塊:

import SockJS from 'sockjs-client';import Stomp from 'stompjs';// 連接函數let number = 1;function reconnect(socketUrl) {    let url = `${BASE_URL}/ws/sdfpoint`; //連接地址    // 建立連接對象(還未發起連接)    let socket = new SockJS(url);    // 獲取 STOMP 子協議的客戶端對象    let stompClient = Stomp.over(socket);    // 向服務器發起websocket連接并發送CONNECT幀    stompClient.connect(        {},//可添加客戶端的認證信息        function connectCallback (){//連接成功的回調函數            //訂閱頻道            stompClient.subscribe('/topic/display/control', function(data){                if (data) {                    console.log('subscribe data',data);                }            })        },        function errorCallBack(error){          //連接失敗時再次調用函數            number += 1;            if(number<=10){                reconnect(url);            }            console.log('error',error);        }    )     }

總結:websocket 的實現客戶端看起來比較簡單,但是需要與后臺進行很好的配合和調試才能達到最佳效果。通過SockJS、Stomp來進行瀏覽器兼容,增加消息語義,增強了可用性。要徹底搞懂websocket,我們還需要深入了解一些底層的原理以及相關的知識。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品v日韩精品| 国模精品系列视频| 91在线视频一区| 日韩亚洲综合在线| 国产精品嫩草影院一区二区| 亚洲肉体裸体xxxx137| 亚洲区免费影片| 91在线网站视频| 在线视频日本亚洲性| 日韩大陆毛片av| 国产欧美日韩中文字幕在线| 91九色国产视频| 久久久在线视频| 欧美亚洲在线视频| 91久久久在线| 日韩二区三区在线| 欧美黑人又粗大| 欧美性猛交xxxx乱大交极品| 国产91久久婷婷一区二区| 日韩成人中文字幕在线观看| 欧美片一区二区三区| 高清亚洲成在人网站天堂| 91av在线看| 超碰精品一区二区三区乱码| 91视频国产一区| 久久精品中文字幕| 日韩视频免费在线| 国产精品视频色| 亚洲视频综合网| 久久亚洲春色中文字幕| 国产精品影片在线观看| 神马国产精品影院av| 亚洲日韩中文字幕在线播放| 久久777国产线看观看精品| 另类美女黄大片| 超碰97人人做人人爱少妇| 亚洲天堂男人的天堂| 成人国产精品av| 精品视频在线播放免| 国产小视频国产精品| 久久久久久18| 91精品久久久久久久久久| 欧美乱大交做爰xxxⅹ性3| 欧美日韩国产第一页| 在线播放日韩欧美| 国产脚交av在线一区二区| 国产午夜精品一区理论片飘花| 91av视频在线免费观看| 2019av中文字幕| 亚洲精品福利免费在线观看| 精品高清美女精品国产区| 色偷偷偷综合中文字幕;dd| 亚洲国产另类久久精品| 久久不射电影网| 韩国一区二区电影| 日本精品一区二区三区在线播放视频| 国产在线精品自拍| 国产丝袜一区二区| 国产丝袜一区二区| 久久69精品久久久久久国产越南| 国产精品人成电影| 久久激情视频免费观看| 都市激情亚洲色图| 亚洲精选在线观看| 国产狼人综合免费视频| 国产精品久久久久久久久久99| 国产成人一区二区三区电影| 久久精品亚洲热| 国产成人在线视频| 久久青草精品视频免费观看| 国产精品免费一区二区三区都可以| 亚洲欧美另类中文字幕| 欧美一级淫片aaaaaaa视频| 这里只有精品久久| 日本高清+成人网在线观看| 色偷偷av一区二区三区| 日韩一区二区欧美| 亚洲a一级视频| 色琪琪综合男人的天堂aⅴ视频| 米奇精品一区二区三区在线观看| 国产91九色视频| 91精品国产高清久久久久久| 国产精品美女久久久久av超清| 亚洲淫片在线视频| 日韩美女在线看| 久久99国产精品自在自在app| 久久成人国产精品| 欧美日韩在线视频一区| 日韩动漫免费观看电视剧高清| 欧美视频在线观看免费网址| 欧美性69xxxx肥| 久青草国产97香蕉在线视频| 亚洲品质视频自拍网| 国内精品久久久久久影视8| 日韩hd视频在线观看| 国产性色av一区二区| 亚洲美女av在线| 18久久久久久| 久久夜色精品国产| 亚洲一区美女视频在线观看免费| 97视频在线观看播放| 国产精品日韩电影| 精品国产一区二区三区久久久| 国外成人性视频| 欧美大片va欧美在线播放| 欧美日韩一区二区三区| 精品成人69xx.xyz| 这里只有精品在线播放| 超碰日本道色综合久久综合| 国产三级精品网站| 久久久最新网址| 国产中文欧美精品| 亚洲第一视频网站| 欧美激情视频三区| 欧美一级片久久久久久久| 国产视频一区在线| 韩国精品美女www爽爽爽视频| 欧美日韩国产激情| 久久久久www| 日本午夜精品理论片a级appf发布| 欧美日韩免费在线观看| 欧美激情一区二区三区久久久| 国产欧美日韩精品在线观看| 欧美二区乱c黑人| 亚洲精品久久久久久久久久久| 亚洲女人天堂网| 91爱爱小视频k| 中文字幕亚洲欧美一区二区三区| 91亚洲精品在线| 中文字幕日韩有码| 一区二区av在线| 久久综合亚洲社区| 一区二区三区视频观看| 午夜精品久久17c| 国产精品香蕉av| 亚洲午夜未满十八勿入免费观看全集| 欧美日韩国产999| 欧洲亚洲免费在线| 精品久久国产精品| 久久这里只有精品视频首页| 日本亚洲欧美三级| 亚洲欧洲视频在线| 亚洲精品www久久久久久广东| 国产精品无码专区在线观看| 97视频在线观看免费高清完整版在线观看| 久久69精品久久久久久久电影好| 亚洲视频在线视频| 97免费中文视频在线观看| 亚洲电影第1页| 亚洲老头同性xxxxx| 欧美电影免费观看网站| 国产日韩欧美影视| 中文字幕亚洲字幕| 久久久久免费精品国产| 中文字幕亚洲欧美一区二区三区| 亚洲变态欧美另类捆绑| 国产亚洲福利一区| 亚洲国产婷婷香蕉久久久久久| 中文.日本.精品| 91久久国产精品| 欧美俄罗斯性视频| 欧美激情视频网站| 正在播放欧美视频| 91日本在线观看|