Vue中使用websocket的正確使用方法

建議看我寫(xiě)的另外一篇文章

js封裝一個(gè)websocket

以下原文,不太成熟,可以不用看了

第一次使用websocket就是需要在vue中去使用他,在網(wǎng)上搜索了很多如何在vue中使用的教程和示例,有些demo過(guò)于簡(jiǎn)單擴(kuò)展性太差,有些存在bug

網(wǎng)上經(jīng)常被搜索到的一個(gè)答案是這個(gè)https://blog.csdn.net/niyuelin1990/article/details/78062139#commentsedit,但是這個(gè)答案中在解決websocket未開(kāi)啟和正在開(kāi)啟狀態(tài)的處理方式是使用setTimeout去假定異步的狀態(tài),這個(gè)處理方式是存在問(wèn)題的,于是我在這篇文章的基礎(chǔ)上做出了一些修改,通過(guò)在onopen事件和onerror事件中處理websocket未開(kāi)啟和正在開(kāi)啟狀態(tài)的數(shù)據(jù)發(fā)送問(wèn)題

目前使用到現(xiàn)在沒(méi)有出現(xiàn)什么問(wèn)題,復(fù)制即用

<template>
  <div class="test">

  </div>
</template>

<script>
  export default {
    name : 'test',
    data() {
      return {
        websock: null,
      }
    },
    created() {
      this.initWebSocket();
    },
    destroyed() {
      this.websock.close() //離開(kāi)路由之后斷開(kāi)websocket連接
    },
    methods: {
      initWebSocket(){ //初始化weosocket
        const wsuri = "ws://127.0.0.1:8080";
        this.websock = new WebSocket(wsuri);
        this.websock.onmessage = this.websocketonmessage;
        this.websock.onopen = this.websocketonopen;
        this.websock.onerror = this.websocketonerror;
        this.websock.onclose = this.websocketclose;
      },
      websocketonopen(){ //連接建立之后執(zhí)行send方法發(fā)送數(shù)據(jù)
        let actions = {"test":"12345"};
        this.websocketsend(JSON.stringify(actions));
      },
      websocketonerror(){//連接建立失敗重連
        this.initWebSocket();
      },
      websocketonmessage(e){ //數(shù)據(jù)接收
        const redata = JSON.parse(e.data);
      },
      websocketsend(Data){//數(shù)據(jù)發(fā)送
        this.websock.send(Data);
      },
      websocketclose(e){  //關(guān)閉
        console.log('斷開(kāi)連接',e);
      },
    },
  }
</script>
<style lang='less'>
 
</style>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容