vue项目中使用websocket

news/2024/10/18 10:54:04/

一、单文件中引入使用

<template></template>
<script>export default {websocket: true, // 标志需要使用WebSocketdata () {return {ws: null}},created () {this.ws = new WebSocket('ws://127.0.0.1:8000'); // ws服务地址this.ws.onopen = () => {// 接收服务端消息this.ws.onmessage = res => {console.log(res.data);// 注:res.data是字符串类型,有需要可通JSON.parse进行转换}// 发送消息到服务端this.ws.send('测试数据');// 注:发送的数据需要是字符串类型,有需要可通过JSON.stringify转换}},beforeDestroy () {if (this.ws) {this.ws.close(); // 断开服务连接this.ws = null;}}}
</script>

二、全局引入使用

1、封装websocket.js

const WebSocketPlugin = {install(Vue) {let ws = null;Vue.prototype.$websocket = {init (url) {ws = new WebSocket(url);},send(message) {if (ws && ws.readyState === WebSocket.OPEN) {ws.send(message);}},onMessage(callback) {ws && (ws.onmessage = callback);},onOpen(callback) {ws && (ws.onopen = callback);},onClose() {ws && ws.close();},onError(callback) {ws && (ws.onerror = callback);}}}
}
export default WebSocketPlugin;

main.js全局引入

import Vue from "vue";
import WebSocketPlugin from './websocket.js';
Vue.use(WebSocketPlugin);

2、页面使用

<template>
</template>
<script>export default {websocket: true, // 标志需要使用WebSocketcreated () {this.$websocket.init('ws://127.0.0.1:8000');this.$websocket.onOpen(() => {// 接收服务端消息this.$websocket.onMessage(res => {console.log(res.data);})// 发送消息到服务端this.$websocket.send('测试数据');})},beforeDestroy () {this.$websocket.onClose();}}
</script>

http://www.ppmy.cn/news/1539980.html

相关文章

使用Three.js和Force-Directed Graph实现3D知识图谱可视化

先看样式&#xff1a; 在当今信息爆炸的时代&#xff0c;如何有效地组织和展示复杂的知识结构成为一个重要的挑战。3D知识图谱可视化是一种直观、交互性强的方式来呈现知识之间的关系。本文将详细介绍如何使用HTML、JavaScript、Three.js和Force-Directed Graph库来实现一个交互…

网页复制粘贴助手,Chrome网页复制插件(谷歌浏览器复制插件)

一款解决网页限制复制问题的插件&#xff0c;当你遇到限制复制粘贴和右键的网页是不是很头痛&#xff1f;安装这个插件后&#xff0c;点下插件按钮就能解决了 碰到这种情况 也是非常头疼 chrome拓展-chrome插件-强制复制 当我们浏览网页的时候&#xff0c;看到感兴趣的内容就…

华为云Flexus云服务:性能倍增、体验跃级

在数字化转型的浪潮中&#xff0c;企业对云计算的需求日益增长&#xff0c;尤其是在性能和体验方面。华为云Flexus云服务应运而生&#xff0c;为企业提供了一个性能倍增、体验跃级的云计算解决方案。下面九河云就来给大家介绍一下华为云Flexus云服务吧。 1. 性能倍增 华为云…

【JAVA面试题】什么是Springboot的自动配置以及注意事项

文章目录 强烈推荐核心概念&#xff1a;自动配置的关键特点&#xff1a;示例&#xff1a; 需要注意的点1.默认配置可能不适合所有场景2.Bean 冲突与覆盖3.应用启动慢的问题4.过度依赖自动配置5.安全性问题6.依赖冲突与版本兼容7.过多不必要的自动配置8.调试困难 专栏集锦 强烈推…

设计模式-原型模式(克隆、Clone、Prototype)

原型模式&#xff08;克隆、Clone、Prototype&#xff09;是一种创建型设计模式&#xff0c; 使你能够复制已有对象&#xff0c; 而又无需使代码依赖它们所属的类。 问题 譬如美国研制了一种特效药&#xff0c;而且还在专利保护器内&#xff0c;而印度制药公司看中了&#xff0…

QT IEEE754 16进制浮点数据转成10进制

IEEE754标准转换QT代码 qtcreator使用的ieee754标准的4字节数组与浮点数之间的转换方法&#xff0c;ieee754的4位数组如果转换成二进制后&#xff0c;大体结构是&#xff1a; 位序号12-910-32意义 符号位&#xff0c; 正数为0&#xff0c;负数为1. 指数位&#xff0c; 指数是…

YOLO11 目标检测 | 导出ONNX模型 | ONNX模型推理

本文分享YOLO11中&#xff0c;从xxx.pt权重文件转为.onnx文件&#xff0c;然后使用.onnx文件&#xff0c;进行目标检测任务的模型推理。 用ONNX模型推理&#xff0c;便于算法到开发板或芯片的部署。 备注&#xff1a;本文是使用Python&#xff0c;编写ONNX模型推理代码的 目…

小猿口算炸鱼脚本

目录 写在前面&#xff1a; 一、关于小猿口算&#xff1a; 二、代码逻辑 1.数字识别 2.答题部分 三、代码分享&#xff1a; 补充&#xff1a;软件包下载 写在前面&#xff1a; 最近小猿口算已经被不少大学生攻占&#xff0c;小学生直呼有挂。原本是以为大学生都打着本…