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 验证表单(form)中的单选(radio)值
Sep 08 Javascript
解决Jquery load()加载GB2312页面时出现乱码的两种方案
Sep 10 Javascript
JS中判断JSON数据是否存在某字段的方法
Mar 07 Javascript
jQuery实现table中的tr上下移动并保持序号不变的实例代码
Jul 11 Javascript
让DIV的滚动条自动滚动到最底部的3种方法(推荐)
Sep 24 Javascript
详解Axios统一错误处理与后置
Sep 26 Javascript
Vue 事件处理操作实例详解
Mar 05 Javascript
Layui实现带查询条件的分页
Jul 27 Javascript
vue实现页面滚动到底部刷新
Aug 16 Javascript
js实现div色块拖动录制
Jan 16 Javascript
vue实现图片懒加载的方法分析
Feb 05 Javascript
如何使JavaScript休眠或等待
Apr 27 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
第1次亲密接触PHP5(2)
2006/10/09 PHP
破解图片防盗链的代码(asp/php)测试通过
2010/07/02 PHP
PHP使用ODBC连接数据库的方法
2015/07/18 PHP
无需数据库在线投票调查php代码
2016/07/20 PHP
通过php动态传数据到highcharts
2017/04/05 PHP
laravel在中间件内生成参数并且传递到控制器中的2种姿势
2019/10/15 PHP
jQuery.Autocomplete实现自动完成功能(详解)
2010/07/13 Javascript
JavaScript执行顺序详细介绍
2013/12/04 Javascript
javascript中Number对象的toString()方法分析
2014/12/20 Javascript
jQuery中fadeOut()方法用法实例
2014/12/24 Javascript
微信小程序联网请求的轮播图
2017/07/07 Javascript
nodejs 搭建简易服务器的图文教程(推荐)
2017/07/18 NodeJs
4 种滚动吸顶实现方式的比较
2019/04/09 Javascript
vue+vant实现商品列表批量倒计时功能
2020/01/13 Javascript
js实现九宫格布局效果
2020/05/28 Javascript
微信小程序学习总结(二)样式、属性、模板操作分析
2020/06/04 Javascript
在实例中重学JavaScript事件循环
2020/12/03 Javascript
[49:11]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第二场 12.20
2020/12/23 DOTA
Python入门篇之正则表达式
2014/10/20 Python
Python中super函数的用法
2017/11/17 Python
利用numpy实现一、二维数组的拼接简单代码示例
2017/12/15 Python
用Python实现数据的透视表的方法
2018/11/16 Python
python+PyQT实现系统桌面时钟
2020/06/16 Python
Python3 执行系统命令并获取实时回显功能
2019/07/09 Python
python 类之间的参数传递方式
2019/12/20 Python
Python如何使用内置库matplotlib绘制折线图
2020/02/24 Python
毕业生求职推荐信
2013/11/04 职场文书
应届生新闻编辑求职信
2013/11/19 职场文书
机关办公室岗位职责
2014/04/16 职场文书
实习生辞职信范文
2015/03/02 职场文书
2015年技术员工作总结
2015/04/10 职场文书
2015学校六五普法工作总结
2015/04/22 职场文书
2015年环卫工作总结
2015/04/28 职场文书
2016年三严三实党课学习心得体会
2016/01/06 职场文书
2019经典广告词集锦!
2019/07/02 职场文书
CSS3 Tab动画实例之背景切换动态效果
2021/08/23 HTML / CSS