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 相关文章推荐
你需要知道的JavsScript可以做什么?
Jun 29 Javascript
jQuery简单图表peity.js使用示例
May 02 Javascript
jQuery Ajax()方法使用指南
Nov 19 Javascript
JQuery简单实现锚点链接的平滑滚动
May 03 Javascript
使用jQuery Mobile框架开发移动端Web App的入门教程
May 17 Javascript
JS递归遍历对象获得Value值方法技巧
Jun 14 Javascript
JS生成一维码(条形码)功能示例
Jan 19 Javascript
详解从angular-cli:1.0.0-beta.28.3升级到@angular/cli:1.0.0
May 22 Javascript
详解从零搭建 vue2 vue-router2 webpack3 工程
Nov 22 Javascript
详解vuex的简单使用
Mar 12 Javascript
浅析JavaScript 函数防抖和节流
Jul 13 Javascript
Vue项目打包、合并及压缩优化网页响应速度
Jul 07 Vue.js
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
用PHP的ob_start();控制您的浏览器cache!
2006/11/25 PHP
为IP查询添加GOOGLE地图功能的代码
2010/08/08 PHP
php-perl哈希算法实现(times33哈希算法)
2013/12/30 PHP
php中hashtable实现示例分享
2014/02/13 PHP
YII2.0之Activeform表单组件用法实例
2016/01/09 PHP
Laravel 的数据库迁移的方法
2017/07/31 PHP
PHP字符串和十六进制如何实现互相转换
2020/07/16 PHP
javascript中的一些注意事项 更新中
2010/12/06 Javascript
js中的push和join方法使用介绍
2013/10/08 Javascript
JS选项卡动态替换banner图片路径的方法
2015/05/11 Javascript
javascript实现瀑布流加载图片原理
2016/02/02 Javascript
Jquery轮播效果实现过程解析
2016/03/30 Javascript
jQuery实现的小图列表,大图展示效果幻灯片示例
2016/10/25 Javascript
vue-cli + sass 的正确打开方式图文详解
2017/10/27 Javascript
在vue中通过axios异步使用echarts的方法
2018/01/13 Javascript
Angular中使用better-scroll插件的方法
2018/03/27 Javascript
使用Python的Twisted框架实现一个简单的服务器
2015/04/16 Python
python模拟Django框架实例
2016/05/17 Python
python使用psutil模块获取系统状态
2016/08/27 Python
从头学Python之编写可执行的.py文件
2017/11/28 Python
解决python中导入win32com.client出错的问题
2019/07/26 Python
pyinstaller还原python代码过程图解
2020/01/08 Python
基于Python获取照片的GPS位置信息
2020/01/20 Python
荷兰牛仔裤网上商店:Jeans Centre
2018/04/03 全球购物
澳大利亚领先的孕妇服装品牌:Mamaway
2018/08/14 全球购物
英国领先的独立酒精饮料零售商:DrinkSupermarket
2021/01/13 全球购物
广州盈通面试题
2015/12/05 面试题
优秀学生事迹材料
2014/02/08 职场文书
2014年元旦活动方案
2014/02/15 职场文书
国贸专业自荐信范文
2014/03/02 职场文书
银行竞聘演讲稿范文
2014/04/23 职场文书
网络营销计划
2015/01/17 职场文书
学校运动会感想
2015/08/10 职场文书
用Python爬虫破解滑动验证码的案例解析
2021/05/06 Python
Python编解码问题及文本文件处理方法详解
2021/06/20 Python
DQL数据查询语句使用示例
2022/12/24 MySQL