vue使用websoket
2024-09-22 15:05:31
参考链接:https://www.cnblogs.com/qisi007/p/10213886.html
export default {
name: "realdetail",
components: {},
data() {
return {
wsuri: null,
websock: null
}
};
},
created() {
this.wsuri = "ws://127.0.0.1:8210";//监听地址
this.initWebSocket();
},
destroyed() {
this.websock.close() //离开路由之后断开websocket连接
},
methods: {initWebSocket() { //初始化weosocket
this.websock = new WebSocket(this.wsuri);
this.websock.onmessage = this.websocketonmessage;
this.websock.onopen = this.websocketonopen;
this.websock.onerror = this.websocketonerror;
this.websock.onclose = this.websocketclose;
},
websocketonopen() { //连接建立之后执行send方法发送数据
let message = {
type: "login",
data: {"mn":this.deviceInfo.mn}
};
console.log(message);
this.websocketsend(JSON.stringify(message));
},
websocketonerror() { //连接建立失败重连
this.initWebSocket();
},
websocketonmessage(e) { //数据接收
const redata = JSON.parse(e.data); console.log(redata)
this.handlerData(redata);
this.$forceUpdate(); // 强制刷新一下数据
},
websocketsend(Data) { //数据发送
this.websock.send(Data);
},
websocketclose(e) { //关闭
console.log('断开连接', e);
},
handlerData(data) {
if (data.type) {
switch (data.type) {
case "realData":
this.updateRealData(data.data);
this.deviceInfo.onlineStatus=1;
break;
case "online":
this.deviceInfo.onlineStatus=1;
break;
case "offline":
this.deviceInfo.onlineStatus=0;
break;
}
}
},
//更新实时数据
updateRealData(data){
this.realData=this.handleRealData(data);
}
}
在线测试websocket:http://coolaf.com/tool/chattest
最新文章
- 常用HTTP状态码和CURL 000问题
- ubuntu 修改终端命令显示的颜色
- org.eclipse.wst.common.project.facet.core.xml文件模板,解决eclipse编译报错。
- group by调优的一些测试
- centos下安装Jenkins轻松搞定
- python函数(5):迭代器和生成器
- 201521123057 《Java程序设计》第12周学习总结
- jQuery.proxy() 函数详解
- python 基础之python的六大标准数据类型
- ASP.NET Core 和 ASP.NET Framework 共享 Identity 身份验证
- 分布式队列celery 异步----Django框架中的使用
- C++进阶--理解左值和右值
- Delphi模拟最小化恢复关闭按纽
- Select2 用法
- 游戏编程入门之Bomb Catcher游戏
- pandas 数据处理
- InnoDB存储引擎的B+树索引算法
- 采用MQTT协议实现android消息推送(3)选ActiveMQ当服务端
- Vuex基础-Module
- [转载] Android raw与assets区别