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玩转游戏物理(一)运动学模拟与粒子系统
Jun 19 Javascript
javascript中创建对象的三种常用方法
Dec 30 Javascript
定义JavaScript二维数组采用定义数组的数组来实现
Dec 09 Javascript
JavaScript动态修改弹出窗口大小的方法
Apr 06 Javascript
js提交form表单,并传递参数的实现方法
May 25 Javascript
基于jQuery实现手风琴菜单、层级菜单、置顶菜单、无缝滚动效果
Jul 20 jQuery
JavaScript中Object基础内部方法图
Feb 05 Javascript
发布一款npm包帮助理解npm的使用
Jan 03 Javascript
jquery弹窗时禁止body滚动条滚动的例子
Sep 21 jQuery
JS函数基本定义与用法示例
Jan 15 Javascript
Jquery使用each函数实现遍历及数组处理
Jul 14 jQuery
VUE递归树形实现多级列表
Jul 15 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 session 预定义数组
2009/03/16 PHP
php xml实例 留言本
2009/03/20 PHP
php实现按文件名搜索文件的远程文件查找器
2014/05/10 PHP
PHP实现的服务器一致性hash分布算法示例
2018/08/09 PHP
求解开jscript.encode代码的asp函数
2007/02/28 Javascript
IE和Firefox的Javascript兼容性总结[推荐收藏]
2011/10/19 Javascript
js字符串转成JSON
2013/11/07 Javascript
页面js遇到乱码问题的解决方法是和无法转码的情况
2014/04/30 Javascript
gridview生成时如何去掉style属性中的border-collapse
2014/09/30 Javascript
jquery实现简单手风琴菜单效果实例
2015/06/13 Javascript
移动端使用localStorage缓存Js和css文的方法(web开发)
2016/09/20 Javascript
JS判断输入的字符串是否是数字的方法(正则表达式)
2016/11/29 Javascript
Vue.js使用$.ajax和vue-resource实现OAuth的注册、登录、注销和API调用
2017/05/10 Javascript
微信小程序实现卡片层叠滑动效果
2019/06/21 Javascript
三分钟教你用Node做一个微信哄女友(基友)神器(面向小白)
2019/06/21 Javascript
vue实现输入框自动跳转功能
2020/05/20 Javascript
vue 组件间的通信之子组件向父组件传值的方式
2020/07/29 Javascript
[04:53]DOTA2英雄基础教程 祈求者
2014/01/03 DOTA
基于Python实现通过微信搜索功能查看谁把你删除了
2016/01/27 Python
Python 查看文件的编码格式方法
2017/12/21 Python
在python环境下运用kafka对数据进行实时传输的方法
2018/12/27 Python
python图形工具turtle绘制国际象棋棋盘
2019/05/23 Python
解决Python使用列表副本的问题
2019/12/19 Python
Python如何利用Har文件进行遍历指定字典替换提交的数据详解
2020/11/05 Python
如何使用css3实现一个类在线直播的队列动画的示例代码
2020/06/17 HTML / CSS
台湾家适得:Homeget
2019/02/11 全球购物
面向中国市场的在线海淘美妆零售网站:Beauty House美丽屋
2021/03/02 全球购物
大四毕业生学习总结的自我评价
2013/10/31 职场文书
党员承诺书内容
2014/03/26 职场文书
护理学院专科毕业生求职信
2014/06/28 职场文书
群众路线自我剖析材料
2014/10/08 职场文书
2015年大学生党员承诺书
2015/04/27 职场文书
2015年信贷员工作总结
2015/04/28 职场文书
销售会议开幕词
2016/03/04 职场文书
python 遍历磁盘目录的三种方法
2021/04/02 Python
MySQL数据库简介与基本操作
2022/05/30 MySQL