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 相关文章推荐
浅析JQuery获取和设置Select选项的常用方法总结
Jul 04 Javascript
JS获取URL中的参数数据
Dec 05 Javascript
js的2种继承方式详解
Mar 04 Javascript
Jquery设置attr的disabled属性控制某行显示或者隐藏
Sep 25 Javascript
javascript设计模式之对象工厂函数与构造函数详解
Jul 30 Javascript
Jquery鼠标放上去显示全名的实现方法
Feb 06 Javascript
jQuery实现导航回弹效果
Feb 27 Javascript
vue + socket.io实现一个简易聊天室示例代码
Mar 06 Javascript
vue.js中mint-ui框架的使用方法
May 12 Javascript
vuejs实现折叠面板展开收缩动画效果
Sep 06 Javascript
微信小程序自定义组件传值 页面和组件相互传数据操作示例
May 05 Javascript
vue vant中picker组件的使用
Nov 03 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
linux下删除7天前日志的代码(php+shell)
2011/01/02 PHP
ThinkPHP上使用多说评论插件的方法
2014/10/31 PHP
php查询相似度最高的字符串的方法
2015/03/12 PHP
PHP的邮件群发系统phplist配置方法详细总结
2016/03/30 PHP
项目中应用Redis+Php的场景
2016/05/22 PHP
Javascript监视变量变化的方法
2015/06/09 Javascript
jQuery无刷新上传之uploadify3.1简单使用
2016/06/18 Javascript
避免jQuery名字冲突 noConflict()方法
2016/07/30 Javascript
详解nodejs 文本操作模块-fs模块(一)
2016/12/22 NodeJs
JS回调函数简单用法示例
2017/02/09 Javascript
vue.js删除动态绑定的radio的指定项
2017/06/02 Javascript
利用Ionic2 + angular4实现一个地区选择组件
2017/07/27 Javascript
vue利用better-scroll实现轮播图与页面滚动详解
2017/10/20 Javascript
解决Vue打包之后文件路径出错的问题
2018/03/06 Javascript
node和vue实现商城用户地址模块
2018/12/05 Javascript
微信小程序合法域名配置方法
2019/05/06 Javascript
vue 检测用户上传图片宽高的方法
2020/02/06 Javascript
Pyhton中单行和多行注释的使用方法及规范
2016/10/11 Python
python使用folium库绘制地图点击框
2018/09/21 Python
Python 实现「食行生鲜」签到领积分功能
2018/09/26 Python
Python装饰器限制函数运行时间超时则退出执行
2019/04/09 Python
Numpy数组array和矩阵matrix转换方法
2019/08/05 Python
用python制作个音乐下载器
2021/01/30 Python
Keds官方网站:购买帆布运动鞋和经典皮鞋
2016/11/12 全球购物
香港万宁官方海外旗舰店:香港健与美连锁店
2018/09/27 全球购物
Martinelli官方商店:西班牙皮鞋和高跟鞋品牌
2019/07/30 全球购物
配置管理计划的主要内容有哪些
2014/06/20 面试题
高三自我鉴定范文
2013/10/19 职场文书
学生安全责任书
2014/04/15 职场文书
业务员自荐信范文
2014/04/20 职场文书
党员年终个人总结
2015/02/14 职场文书
道歉情书大全
2015/05/12 职场文书
东京审判观后感
2015/06/01 职场文书
领导离职感言
2015/08/03 职场文书
2016优秀班主任个人先进事迹材料
2016/02/26 职场文书
MySQL一劳永逸永久支持输入中文的方法实例
2022/08/05 MySQL