【土旦】Vue+WebSocket 实现长连接

1.websocket 连接代码


 

 

created() {
    this.initWebsocket()
},
methods: {
    // 初始化websocket
    initWebsocket() {
        let _this = this
        let ws = new WebSocket(this.wsUrl)
        //保持连接
        ws.onopen = () = > {
            // Web Socket 已连接上,使用 send() 方法发送数据
            //console.log('数据发送中...')
            setInterval(() = > {
                let msg = {
                    msg: '心跳内容'
                }
                ws.send(JSON.stringify(msg))
            }, 5000)
            //console.log('数据发送完成')
        }
        //数据接收
        ws.onmessage = evt = > {
            _this.websocketonmessage(evt)
             //console.log('数据已接收...')
        }
        // 关闭 websocket 时的 钩子
        ws.onclose = () = > {
            //console.log('连接已关闭...')
            _this.websocket()
        }
        // 路由跳转时结束websocket链接
        this.$router.afterEach(() = > {
            ws.close()
        })
    },//数据接收
    websocketonmessage(e) {
        // 数据处理
        let obj = JSON.parse(e.data)
    }
}

 

posted @ 2019-02-18 14:24  我想当个土老板  阅读(1506)  评论(0编辑  收藏  举报