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 相关文章推荐
用Juery网页选项卡实现代码
Jun 13 Javascript
jquery $.getJSON()跨域请求
Dec 21 Javascript
seajs1.3.0源码解析之module依赖有序加载
Nov 07 Javascript
jquery模拟LCD 时钟的html文件源代码
Jun 16 Javascript
浅谈Jquery为元素绑定事件
Apr 27 Javascript
使用javaScript动态加载Js文件和Css文件
Oct 24 Javascript
AngularJS中实现显示或隐藏动画效果的方式总结
Dec 31 Javascript
jQuery+HTML5+CSS3制作支持响应式布局时间轴插件
Aug 10 Javascript
JavaScript正则获取地址栏中参数的方法
Mar 02 Javascript
JavaScript实现两个select下拉框选项左移右移
Mar 09 Javascript
Node.js利用js-xlsx处理Excel文件的方法详解
Jul 05 Javascript
jQuery发请求传输中文参数乱码问题的解决方案
May 22 jQuery
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
破解图片防盗链的代码(asp/php)测试通过
2010/07/02 PHP
php实现rc4加密算法代码
2012/04/25 PHP
用 Composer构建自己的 PHP 框架之设计 MVC
2014/10/30 PHP
PHP中的一些常用函数收集
2015/05/26 PHP
php获取英文姓名首字母的方法
2015/07/13 PHP
PHP性能测试工具xhprof安装与使用方法详解
2018/04/29 PHP
jquery通过visible来判断标签是否显示或隐藏
2014/05/08 Javascript
javascript操作数组详解
2014/12/17 Javascript
javascript实现校验文件上传控件实例
2015/04/20 Javascript
Vue.js每天必学之方法与事件处理器
2016/09/06 Javascript
js 颜色选择插件
2017/01/23 Javascript
Vue动态实现评分效果
2017/05/24 Javascript
浅谈angular2 组件的生命周期钩子
2017/08/12 Javascript
客户端(vue框架)与服务器(koa框架)通信及服务器跨域配置详解
2017/08/26 Javascript
ES6知识点整理之数组解构和字符串解构的应用示例
2019/04/17 Javascript
JavaScript遍历数组和对象的元素简单操作示例
2019/07/09 Javascript
Python中实现常量(Const)功能
2015/01/28 Python
Python实现栈的方法
2015/05/26 Python
python简单实现计算过期时间的方法
2015/06/09 Python
python爬取盘搜的有效链接实现代码
2019/07/20 Python
django云端留言板实例详解
2019/07/22 Python
python绘制雪景图
2019/12/16 Python
Pytorch 之修改Tensor部分值方式
2019/12/27 Python
python实现简单的tcp 文件下载
2020/09/16 Python
如何用Python 实现全连接神经网络(Multi-layer Perceptron)
2020/10/15 Python
python 实现ping测试延迟的两种方法
2020/12/10 Python
CSS3 2D模拟实现摩天轮旋转效果
2016/11/16 HTML / CSS
HTML5边玩边学(2)基础绘图实现方法
2010/09/21 HTML / CSS
迪奥官网:Dior.com
2018/12/04 全球购物
写给老师的表扬信
2014/01/21 职场文书
标准自荐信范文
2014/01/29 职场文书
少先队学雷锋活动总结范文
2014/03/09 职场文书
优秀的2014年两会精神解读
2014/03/17 职场文书
幼儿园2016年感恩节活动总结
2016/04/01 职场文书
开学季:喜迎新生,迎新标语少不了
2019/11/07 职场文书
Python爬虫实战之爬取京东商品数据并实实现数据可视化
2021/06/07 Python