vue+websocket demo 实例

Posted mengfangui

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue+websocket demo 实例相关的知识,希望对你有一定的参考价值。

vue+websocket demo:

<!-- vue + websocket连接demo -->
<template>
    <div class="">vue + websocket连接demo</div>
</template>

<script>
export default 
    data() 
        return 
            // 连接标志位
            lockReconnect: false,
            wsCfg: 
                // websocket地址
                url: ‘ws://10.74.52.107:9001/websocket‘
            
        ;
    ,
    methods: 
        createWebSocket() 
            try 
                // 创建Web Socket 连接
                const socket = new WebSocket(this.wsCfg.url);
                // 初始化事件
                this.initEventHandle(socket);
             catch (e) 
                // 出错时重新连接
                this.reconnect(this.wsCfg.url);
            
        ,
        initEventHandle(socket) 
            // 连接关闭时触发
            socket.onclose = () => 
                console.log(‘连接关闭‘);
            ;
            // 通信发生错误时触发
            socket.onerror = () => 
                // 重新创建长连接
                this.reconnect();
            ;
            // 连接建立时触发
            socket.onopen = () => 
                console.log(‘连接成功‘);
            ;
            // 客户端接收服务端数据时触发
            socket.onmessage = msg => 
                // 业务逻辑处理
                this.list = msg.data;
            ;
        ,
        reconnect() 
            if (this.lockReconnect) 
                return;
            
            this.lockReconnect = true;

            // 没连接上会一直重连,设置延迟避免请求过多
            setTimeout(() => 
                this.lockReconnect = false;
                this.createWebSocket(this.wsCfg.url);
            , 2000);
        
    ,
    mounted() 
        this.createWebSocket();
    
;
</script>

 

以上是关于vue+websocket demo 实例的主要内容,如果未能解决你的问题,请参考以下文章

基于Websocket协议的研究demo

基于Websocket协议的研究demo

如何将 websocket 实例传递给 vue.js 组件,然后在其上调用 send()?

我做的一个websocket的demo(php server)

Vue+WebSocket 实现页面实时刷新长连接

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