vue中使用webSocket教程

4 篇文章 0 订阅
本文介绍了在Vue项目中如何利用WebSocket进行实时进度更新,特别是在文件上传过程中展示进度条的状态。WebSocket作为一个持久化协议,允许双向通信,不同于HTTP的单向模式。文中提供了初始化WebSocket、事件监听及数据处理的代码示例,展示了如何接收并处理服务器发送的上传进度信息,以便用户了解操作进度。
摘要由CSDN通过智能技术生成

vue中使用webSocket教程

开发项目中要实时更新上传进度,利用组件使用进度条后,但是里面绑定的值要随时更新

例如:进度条实时更新上传进度,展示失败或者上传到百分之多少,方便用户看见进度好操作下一步功能


什么是webSocket

1.Websocket是一个持久化的协议
2.说它是TCP传输,主要体现在建立长连接后,浏览器是可以给服务器发送数据,服务器也可以给浏览器发送请求的。当然它的数据格式并不是自己定义的,是在要传输的数据外层有ws协议规定的外层包的。
3.websocket是一种全新的协议,不属于http无状态协议,协议名为"ws"

webSocket和http的区别

相同点:都是基于tcp的,都是可靠性传输协议,都是应用层协议

不同点:
1.WebSocket是双向通信协议,模拟Socket协议,可以双向发送或接受信息,HTTP是单向的

2.WebSocket是需要浏览器和服务器握手进行建立连接的,而http是浏览器发起向服务器的连接,服务器预先并不知道这个连接

联系:

WebSocket在建立握手时,数据是通过HTTP传输的。但是建立之后,在真正传输时候是不需要HTTP协议的

效果如下

在这里插入图片描述

在这里插入图片描述

代码如下:

项目中不需要下载任何东西,注意url前面加上 ‘ws:’,如果配置代理跨域那里写了ws:true的话,那这里的url可以不用写了

		initWebSocket(jobId) {
            const _this = this
            var websocket = null;
            if('WebSocket' in window) {
            	//这里写链接接口url
                websocket = new WebSocket("ws://xx.xx.x.xx:xxxx/websocket?jobId="+jobId);
            } else {
                alert("该浏览器不支持websocket!");
            }
            websocket.onopen = function(event) {
                console.log("建立连接");
                websocket.send('Hello WebSockets!');
            }
            websocket.onclose = function(event) {
                console.log('连接关闭')
                 _this.reconnect()//尝试重连websocket
            }
            websocket.onmessage = function(event) {
                console.log('业务处理中')
                //接收后端发送的数据
                _this.webData = JSON.parse(event.data);
                _this.tatleData.push(_this.webData.classCount)
                _this.tatleData.push(_this.webData.methodCount)
                //判断如果接口参数finish等于true,就可以断开连接了,代表数据发送完毕
                if(_this.webData.finish == true){
                    websocket.close();
                }
           }
           websocket.onerror = function() {
                // notify.warn("websocket通信发生错误!");
                // ——this.initWebSocket()
           }
           window.onbeforeunload = function() {
                websocket.close();
          }
     },

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值