vue使用websocket的方法实例分析


Posted in Javascript onJune 22, 2019

本文实例讲述了vue使用websocket的方法。分享给大家供大家参考,具体如下:

最近项目需要使用到websocket 但是框架是vue  网上查阅很多资料 vue-websocket 老是连接不上 索性就不适用封装的插件了,直接使用原生的websocket  我这边需求是 只需要接受就好 不需要发送 代码如下:

爬坑之路:vue里面this指向问题

第一版 使用原生js

mounted(){
 console.log(this)----------------------------------------------------------this指向vue
 this.initWebpack();
},
methods: {
  initWebpack() {
    let websocket = '';
    if ('WebSocket' in window) {
      websocket = new WebSocket("ws://192.168.1.99:8080/tv/websocket");
    } else {
      alert('当前浏览器 Not support websocket')
    } //连接成功建立的回调方法 websocket.onopen = function () { console.log("WebSocket连接成功")
    console.log(this)----------------------------------------------------------this指向websocket
  };
//接收到消息的回调方法
websocket.onmessage = function (event) {
console.log(this)
console.log(event);
 this.productinfos=JSON.parse(event.data);//websocket请求过来的是string 需要格式
 if(demo.offsetHeight<demo1.offsetHeight){//内部比外部高度大的时候滑动
this.upScroll()//这是this指向websocket 所以没有此方法 会报错
}
this.sliceArray() }
 }
 };
//连接关闭的回调方法 websocket.onclose = function () {
console.log("WebSocket连接关闭");
};
//连接发生错误的回调方法 websocket.onerror = function () {
console.log("WebSocket连接发生错误");
};
//监听窗口关闭事件,当窗口关闭时,主动去关闭websocket连接,防止连接还没断开就关闭窗口,server端会抛异常。
 window.onbeforeunload = function () {
websocket.close();
//关闭WebSocket连接 };
 },
sliceArray(){//截取数组的后四位 },
 upScroll(){ },
}

第二版:正解

methods:{
 initWebpack(){//初始化websocket
  const wsuri = "ws地址";
  this.websock = new WebSocket(wsuri);//这里面的this都指向vue
  this.websock.onopen = this.websocketopen;
  this.websock.onmessage = this.websocketonmessage;
  this.websock.onclose = this.websocketclose;
  this.websock.onerror = this.websocketerror;
 },
 websocketopen(){//打开
  console.log("WebSocket连接成功")
 },
 websocketonmessage(e){ //数据接收
  console.log(e)
  this.productinfos = JSON.parse(e.data);
 },
 websocketclose(){ //关闭
  console.log("WebSocket关闭");
 },
 websocketerror(){ //失败
  console.log("WebSocket连接失败");
 },
}

this.websock.onopen  的 this指向的是websocket 如果想要给vue里面的data里面的变量赋值 就需要 this指向vue 所以需要对websocket的方法赋值

希望本文所述对大家vue.js程序设计有所帮助。

Javascript 相关文章推荐
Javascript Select操作大集合
May 26 Javascript
jQuery ui1.7 dialog只能弹出一次问题
Aug 27 Javascript
JavaScript判断表单提交时哪个radio按钮被选中的方法
Mar 21 Javascript
基于jQuery实现简单的折叠菜单效果
Nov 23 Javascript
JSON字符串转换JSONObject和JSONArray的方法
Jun 03 Javascript
js基于cookie记录来宾姓名的方法
Jul 19 Javascript
Javascript 普通函数和构造函数的区别
Nov 05 Javascript
详解angularJS动态生成的页面中ng-click无效解决办法
Jun 19 Javascript
详解Immutable及 React 中实践
Mar 01 Javascript
ios设备中angularjs无法改变页面title的解决方法
Sep 13 Javascript
原生js实现文件上传、下载、封装等实例方法
Jan 05 Javascript
使用TS来编写express服务器的方法步骤
Oct 29 Javascript
JS实现简单的文字无缝上下滚动功能示例
Jun 22 #Javascript
js图片查看器插件用法示例
Jun 22 #Javascript
JS实现继承的几种常用方式示例
Jun 22 #Javascript
让 babel webpack vue 配置文件支持智能提示的方法
Jun 22 #Javascript
简单了解TypeScript中如何继承 Error 类
Jun 21 #Javascript
如何在JavaScript中谨慎使用代码注释
Jun 21 #Javascript
简单了解JavaScript中常见的反模式
Jun 21 #Javascript
You might like
safari下载文件自动加了html后缀问题
2018/11/09 PHP
javascript的键盘控制事件说明
2008/04/15 Javascript
某人初学javascript的时候写的学习笔记
2010/12/30 Javascript
javascript操作excel生成报表全攻略
2014/05/04 Javascript
Node.js 的异步 IO 性能探讨
2014/10/08 Javascript
jQuery层动画定位滑动效果的方法
2015/04/30 Javascript
HTML5之WebSocket入门3 -通信模型socket.io
2015/08/21 Javascript
JS实现样式清新的横排下拉菜单效果
2015/10/09 Javascript
简单的分页代码js实现
2016/05/17 Javascript
底部悬浮通栏可以关闭广告位的实现方法
2016/06/01 Javascript
动态生成的DOM不会触发onclick事件的原因及解决方法
2016/08/06 Javascript
jQuery学习笔记之回调函数
2016/08/15 Javascript
Web打印解决方案之证件套打的实现思路
2016/08/29 Javascript
JS实现类似51job上的地区选择效果示例
2016/11/17 Javascript
JavaScript无操作后屏保功能的实现方法
2017/07/04 Javascript
EasyUI实现下拉框多选功能
2017/11/07 Javascript
MVVM框架下实现分页功能示例
2018/06/14 Javascript
vue实现百度下拉列表交互操作示例
2019/03/12 Javascript
在vue中对数组值变化的监听与重新响应渲染操作
2020/07/17 Javascript
[01:03:09]完美世界DOTA2联赛PWL S2 Forest vs SZ 第二场 11.25
2020/11/26 DOTA
python去掉 unicode 字符串前面的u方法
2018/10/21 Python
python实现手机销售管理系统
2019/03/19 Python
OpenCV+face++实现实时人脸识别解锁功能
2019/08/28 Python
python线程join方法原理解析
2020/02/11 Python
Python常用编译器原理及特点解析
2020/03/23 Python
css3中检验表单的required,focus,valid和invalid样式
2014/02/21 HTML / CSS
英国电视和家用电器购物网站:rlrdistribution.co.uk
2018/11/20 全球购物
缓解脚、腿和背部疼痛:Z-CoiL鞋
2019/03/12 全球购物
大学毕业感言100字
2014/02/03 职场文书
乡镇干部先进事迹材料
2014/02/03 职场文书
三关爱志愿服务活动方案
2014/08/17 职场文书
刑事法律意见书
2015/06/04 职场文书
红与黑读书笔记
2015/06/29 职场文书
2016入党积极分子考察评语
2015/12/01 职场文书
感谢信
2019/04/11 职场文书
探讨Java中的深浅拷贝问题
2021/06/26 Java/Android