vue项目中使用websocket

devtools/2024/10/18 16:51:03/

一、单文件中引入使用

<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/devtools/126766.html

相关文章

【植物病害识别】Python+卷积神经网络算法+人工智能+深度学习+Django网页界面+TensorFlow+模型训练+计算机课设项目

一、介绍 植物病害识别系统。本系统使用Python作为主要编程语言&#xff0c;通过收集水稻常见的四种叶片病害图片&#xff08;‘细菌性叶枯病’, ‘稻瘟病’, ‘褐斑病’, ‘稻瘟条纹病毒病’&#xff09;作为后面模型训练用到的数据集。然后使用TensorFlow搭建卷积神经网络算…

【Lua学习】数值number和数学库math

类型显示 Lua中number表示数值&#xff0c;无论是整数、浮点数、指数、负数&#xff0c;都用number表示。在Lua5.3以后&#xff0c;Lua 为数值格式提供了两种子类型&#xff0c;分别是 integer 的 64 位整型和 float 的双精度浮点型值。 所有的数值使用type函数都能获得相同的…

双十一母婴有什么好物推荐?双十一这五款母婴好物不容错过!

随着双十一购物狂欢节的来临&#xff0c;母婴用品市场再次迎来了消费者的热切关注。作为家长们为孩子和自身挑选必需品的重要时刻&#xff0c;母婴用品的质量和安全性无疑成为了关注的焦点。在众多品牌和商品中&#xff0c;我们精心筛选了本年度最受欢迎的母婴用品&#xff0c;…

FreeRTOS学习笔记1

结合汇编 ldr r3, pxCurrentTCB ldr r2 R3 value0x20000054,R2 value0x2002B950 pxCurrentTCB 020028950 pxTopOfStsck 0x2002B8FC 解释这些寄存器的值是怎么变化的 1. ldr r3, pxCurrentTCB 这一行指令将 全局变量 pxCurrentTCB 的地址加载到寄存器 r3 中。pxCu…

【H2O2|全栈】更多关于HTML(2)HTML5新增内容

目录 HTML5新特性 前言 准备工作 语义化标签 概念 新内容 案例 多媒体标签 音频标签audio 视频标签 video 新增部分input表单属性 预告和回顾 后话 HTML5新特性 前言 本系列博客是对入门专栏的HTML知识的补充&#xff0c;并伴随一些补充案例。 这一期主要介绍H…

太速科技-628-基于VU3P的双路100G光纤加速计算卡

基于VU3P的双路100G光纤加速计算卡 一、板卡概述 基于Xilinx UltraScale16 nm VU3P芯片方案基础上研发的一款双口100 G FPGA光纤以太网PCI-Express v3.0 x16智能加速计算卡&#xff0c;该智能卡拥有高吞吐量、低延时的网络处理能力以及辅助CPU进行网络功能卸载的能力…

Ansible自动化工具

一、Ansible概述 1.1 什么是Ansible Ansible 是一个开源的自动化工具&#xff0c;用于配置管理、应用程序部署和任务自动化。它让你可以通过编写简单的 YAML 文件&#xff08;剧本&#xff0c;Playbooks&#xff09;&#xff0c;轻松管理和配置多个服务器。Ansible 的特点是无…

鸿蒙ArkTS实用开发技巧: 提高效率的关键知识点

ArkTS作为鸿蒙系统的核心开发语言,为开发者提供了强大的工具来创建跨设备、高性能的应用。本文将重点介绍一些实用的ArkTS开发技巧和知识点,帮助开发者提高开发效率和应用质量。 1. 高效的状态管理 ArkTS提供了多种状态装饰器,用于不同场景的状态管理: Entry Component struc…