【前端】vue單獨(dú)使用websocket(js封裝)

websocket不同于http協(xié)議,是由后端往前端推送數(shù)據(jù),因此對(duì)于即時(shí)性數(shù)據(jù)比較合適。

創(chuàng)建websocket:


let base = config.wsIp;** 

let webSocketIP = ``;

let socket = '';

let isFirst = true;

export const createSocket =tid => {

    isFirst = true;

    console.log('establish websocket connection')

    webSocketIP = `${base}/websocket/${tid}`

    socket = new WebSocket(webSocketIP);

    socket.onopen = onopenWs;

    socket.onclose = oncloseWs;

    socket.onerror = onerrorWs;

    socket.onmessage = onmessageWs;

}

const onopenWs = event => {

    console.log("鏈接", event);

    socket.send("websocket client connect testss");

}

const oncloseWs = event => {

    console.log("斷開鏈接", event);

    clearInterval(setIntervalWesocketPush)

}

const onerrorWs = event => {

    console.log("出現(xiàn)錯(cuò)誤", event);

    clearInterval(setIntervalWesocketPush)

}

const onmessageWs = event => {

    console.log(JSON.parse(event.data))

    window.dispatchEvent(new CustomEvent('onmessageWS', {

        detail: {

          data: event,

          isFirst: isFirst

        }

    }))

    if(isFirst) {

      isFirst = false;

    }

}

使用:


import { createSocket } from '../apis/websocket'

this.getNoticeData(this.tid);

getNoticeData(tid) {

        createSocket(tid);

        window.addEventListener('onmessageWS', this.setNoticeData)

 },

這種寫法是參考的簡(jiǎn)書上的一個(gè)老哥的,但他那個(gè)里邊有點(diǎn)問題,所以簡(jiǎn)單做了修改。修改主要是去除了前端的每隔一定時(shí)間請(qǐng)求一下,這是沒必要的,后端定時(shí)推送數(shù)據(jù)本身就是websocket的一大優(yōu)勢(shì),如果使用前端每隔一段時(shí)間請(qǐng)求一下,那還不如直接使用http請(qǐng)求那。

參考鏈接

最后編輯于
?著作權(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)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 本文旨在加深對(duì)前端知識(shí)點(diǎn)的理解,資料來源于網(wǎng)絡(luò) position的值, relative和absolute分別是相...
    新晉小牛牛閱讀 1,402評(píng)論 0 15
  • 面試題一:https://github.com/jimuyouyou/node-interview-questio...
    R_X閱讀 1,775評(píng)論 0 5
  • 本文旨在加深對(duì)前端知識(shí)點(diǎn)的理解,資料來源于網(wǎng)絡(luò),由本人(博客:http://segmentfault.com/u/...
    風(fēng)起云帆閱讀 358評(píng)論 0 0
  • 前端面試問題集錦 JavaScript 部分 1、JQuery $(document).ready() 和 win...
    涯無凌閱讀 980評(píng)論 0 2
  • 一個(gè)老人仙逝 祭奠的 水酒、香火、衣物 金山、銀山、別墅…… 琳瑯滿目 看見那輛 紅色的跑車 我挺迷惑的 這不是讓...
    開心點(diǎn)金石閱讀 1,091評(píng)論 34 31

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