最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue項(xiàng)目使用websocket技術(shù)解讀

 更新時(shí)間:2025年12月16日 15:55:22   作者:鳳凰城下的小碼農(nóng)  
文章介紹了WebSocket的出現(xiàn)背景、特點(diǎn)以及在Vue項(xiàng)目中的應(yīng)用方法,WebSocket是一種在單個(gè)TCP連接上進(jìn)行全雙工通信的協(xié)議,適合實(shí)時(shí)通信場景,在Vue項(xiàng)目中使用WebSocket時(shí),需要注意瀏覽器兼容性、連接與斷開時(shí)機(jī)以及后端接口的配置

一、為什么需要websocket?

前端和后端的交互模式最常見的就是前端發(fā)數(shù)據(jù)請求,從后端拿到數(shù)據(jù)后展示到頁面中。如果前端不做操作,后端不能主動向前端推送數(shù)據(jù),這也是http協(xié)議的缺陷。

因此,一種新的通信協(xié)議應(yīng)運(yùn)而生---websocket,他最大的特點(diǎn)就是服務(wù)端可以主動向客戶端推送消息,客戶端也可以主動向服務(wù)端發(fā)送消息,實(shí)現(xiàn)了真正的平等。

websocket其他特點(diǎn)如下:

(1)建立在 TCP 協(xié)議之上,服務(wù)器端的實(shí)現(xiàn)比較容易。

(2)與 HTTP 協(xié)議有著良好的兼容性。默認(rèn)端口也是80和443,并且握手階段采用 HTTP 協(xié)議,因此握手時(shí)不容易屏蔽,能通過各種 HTTP 代理服務(wù)器。

(3)數(shù)據(jù)格式比較輕量,性能開銷小,通信高效。

(4)可以發(fā)送文本,也可以發(fā)送二進(jìn)制數(shù)據(jù)。

(5)沒有同源限制,客戶端可以與任意服務(wù)器通信。

(6)協(xié)議標(biāo)識符是ws(如果加密,則為wss),服務(wù)器網(wǎng)址就是 URL。

二、vue項(xiàng)目如何引用websocket?

vue使用websocket需要注意以下幾點(diǎn):

(1)首先需要判斷瀏覽器是否支持websocket,關(guān)于如何解決兼容性問題可以參考 這里這里

(2)在組件加載的時(shí)候連接websocket,在組件銷毀的時(shí)候斷開websocket

(3)后端接口需要引入socket模塊,否則不能實(shí)現(xiàn)連接

不廢話了,直接附上完整代碼:

<template>
    <div>
        <button @click="send">發(fā)消息</button>
    </div>
</template>

<script>
export default {
    data () {
        return {
            path:"ws://192.168.0.200:8005/qrCodePage/ID=1/refreshTime=5",
            socket:""
        }
    },
    mounted () {
        // 初始化
        this.init()
    },
    methods: {
        init: function () {
            if(typeof(WebSocket) === "undefined"){
                alert("您的瀏覽器不支持socket")
            }else{
                // 實(shí)例化socket
                this.socket = new WebSocket(this.path)
                // 監(jiān)聽socket連接
                this.socket.onopen = this.open
                // 監(jiān)聽socket錯(cuò)誤信息
                this.socket.onerror = this.error
                // 監(jiān)聽socket消息
                this.socket.onmessage = this.getMessage
            }
        },
        open: function () {
            console.log("socket連接成功")
        },
        error: function () {
            console.log("連接錯(cuò)誤")
        },
        getMessage: function (msg) {
            console.log(msg.data)
        },
        send: function () {
            this.socket.send(params)
        },
        close: function () {
            console.log("socket已經(jīng)關(guān)閉")
        }
    },
    destroyed () {
        // 銷毀監(jiān)聽
        this.socket.onclose = this.close
    }
}
</script>

<style>

</style>

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue2和vue3中provide/inject的基本用法示例

    vue2和vue3中provide/inject的基本用法示例

    Vue中的provide/inject是一種組件間通信的方式,它允許父組件向子組件傳遞數(shù)據(jù),而不需要通過props或事件來實(shí)現(xiàn),下面這篇文章主要給大家介紹了關(guān)于vue2/vue3中provide/inject的基本用法的相關(guān)資料,需要的朋友可以參考下
    2023-04-04
  • Vue?2?和?Vue?3?中?toRefs函數(shù)的不用用法

    Vue?2?和?Vue?3?中?toRefs函數(shù)的不用用法

    Vue?是一款流行的JavaScript?框架,用于構(gòu)建用戶界面,在Vue2和?Vue3中,都存在一個(gè)名為toRefs的函數(shù),但其行為在這兩個(gè)版本中有所不同,這篇文章主要介紹了Vue2和Vue3中toRefs的區(qū)別,需要的朋友可以參考下
    2023-08-08
  • Vue3中reactive函數(shù)toRef函數(shù)ref函數(shù)簡介

    Vue3中reactive函數(shù)toRef函數(shù)ref函數(shù)簡介

    這篇文章主要介紹了Vue3中的三種函數(shù),分別對reactive函數(shù)toRef函數(shù)以及ref函數(shù)原理及使用作了簡單介紹,有需要的朋友可以借鑒參考下
    2021-09-09
  • Vue3組件中g(shù)etCurrentInstance()獲取App實(shí)例,但是返回null的解決方案

    Vue3組件中g(shù)etCurrentInstance()獲取App實(shí)例,但是返回null的解決方案

    這篇文章主要介紹了Vue3組件中g(shù)etCurrentInstance()獲取App實(shí)例,但是返回null的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • 深入淺析vue-cli@3.0 使用及配置說明

    深入淺析vue-cli@3.0 使用及配置說明

    這篇文章主要介紹了vue-cli@3.0 使用及配置說明,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-05-05
  • vue中的vue-router?query方式和params方式詳解

    vue中的vue-router?query方式和params方式詳解

    這篇文章主要介紹了vue中的vue-router?query方式和params方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • Vue使用vxe-table導(dǎo)出和自定義Excel樣式的詳細(xì)教程

    Vue使用vxe-table導(dǎo)出和自定義Excel樣式的詳細(xì)教程

    vxe-table 不僅支持將表格數(shù)據(jù)導(dǎo)出為 .xlsx 文件,還提供了強(qiáng)大的自定義樣式能力,因此本文給大家介紹了Vue使用vxe-table導(dǎo)出和自定義Excel樣式的詳細(xì)教程,需要的朋友可以參考下
    2026-05-05
  • element?el-select下拉框選擇失效解決辦法

    element?el-select下拉框選擇失效解決辦法

    el-select即選擇器用于從若干個(gè)候選項(xiàng)中選擇其中一個(gè)(或者多個(gè)),在傳統(tǒng)網(wǎng)頁開發(fā)中選擇器經(jīng)常被稱作下拉框、下拉列表是最常用的表單元素之一,這篇文章主要給大家介紹了關(guān)于element?el-select下拉框選擇失效解決辦法,需要的朋友可以參考下
    2023-08-08
  • Vue組件模板及組件互相引用代碼實(shí)例

    Vue組件模板及組件互相引用代碼實(shí)例

    這篇文章主要介紹了Vue組件模板及組件互相引用代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • vue.js實(shí)現(xiàn)簡單的計(jì)算器功能

    vue.js實(shí)現(xiàn)簡單的計(jì)算器功能

    這篇文章主要為大家詳細(xì)介紹了vue.js實(shí)現(xiàn)簡單的計(jì)算器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-02-02

最新評論

浪卡子县| 普兰店市| 奉贤区| 泸水县| 永春县| 新源县| 菏泽市| 开远市| 黄浦区| 沁阳市| 咸宁市| 株洲县| 营山县| 佛山市| 界首市| 长丰县| 中方县| 灵川县| 北安市| 镇原县| 兴城市| 敦煌市| 鹤壁市| 余庆县| 象山县| 平利县| 柘荣县| 息烽县| 东丰县| 淮阳县| 安塞县| 达孜县| 扬州市| 高密市| 金乡县| 淳化县| 桦甸市| 绵竹市| 伊春市| 平原县| 郯城县|