vue中使用stomp.js

简介

STOMP即Simple (or Streaming) Text Orientated Messaging Protocol,简单(流)文本定向消息协议,它提供了一个可互操作的连接格式,允许STOMP客户端与任意STOMP消息代理(Broker)进行交互。STOMP协议由于设计简单,易于开发客户端,因此在多种语言和多种平台上得到广泛地应用。

安装使用:

1,在项目中通过 

npm i stompjs 

下载stompjs包 

2,在需要使用stomp进行通信的vue页面中引入 

import Stomp from 'stompjs'

 

连接和订阅

  1. 确定连接的url 改url由后端给予,大致长:‘ws://xxx.xxx.com:8080/xxx/xxx’ 后面可能还会带有要传的内容,如token等,请自行拼接该字符串
  2. 通过该url进行连接,这一步将会使浏览器和服务器之间产生ws连接
    stompjs提供了以下方法进行连接:
 // 连接// 三个参数分别是header,连接成功的回调,失败的回调// header中的内容如果后端没有强调,可以直接为 {}client.connect(headers, connectCallback, errorCallback)// 订阅 两个参数分别是 主题 回调 返回一个订阅对象 包含了 订阅id 取消订阅的方法 unsubscribeclient.subscribe("/queue/test", callback)// 实例let client = nulllet subscription = nulllet url = 'xxx.xxx.xxx:xxx/xxx/xxx?xxx=xxx'function initWs(){client = Stomp.client(url) // 创建stomp对象client.connect({}, (res)=>{ // 连接成功,此时可以在network中看到建立了ws连接// 在这里进行订阅 主题由后端提供const topic = '/xxxx/xxxx/xxxxsubscription = client.subscribe(topic,(resp)=>{ // 这里的resp是stomp返回的message// ...})}, (err)=>{ // 连接失败console.log(err)})}function stopSubscribe(){ // 取消订阅subscription.unsubscribe()}function closeConnect(){ // 关闭stomp连接client.disconnect()}

 

心跳

目前npm i stompjs 中的stomp.js设置了默认的心跳,默认值为10秒发一次

client.heartbeat.outgoing = 20000 // 20秒发一次
client.heartbeat.incoming = 0 // 客户端不接受心跳

stomp中实现定时器用的是 window.setInterval当在没有window对象的环境中使用时,会报错,比如微信小程序…此时需要对stomp.js文件进行修改,参看stomp.js中 Stomp.setInterval = function(){...} 部分,为stomp.setinterval和clearinterval赋值一个当前环境中可以使用的定时器即可

发送信息

client.send()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/661054.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

洞悉智能新纪元:从基础AI到AIGC直至GAI的深度探索

引言 随着科技发展步入快车道,人工智能(Artificial Intelligence, AI)正以前所未有的速度渗透进我们的日常生活。本篇文章将通过详实的案例分析,帮助读者把握基础AI的核心功能,领略AI生成内容(AIGC&#x…

使用STM32的FMC/FSMC接口实现多路数据传输和并发操作的设计与应用

在基于STM32的系统中,FMC(Flexible Memory Controller)/FSMC(Flexible Static Memory Controller)接口可以用于实现多路数据传输和并发操作。通过合理的设计和应用,我们可以提高系统的数据处理速度和效率。…

C++(20):通过concept及nlohmann将数据转换为字符串

nlohmann可以自动兼容将C++的很多原生类型转换为json,甚至自定义类型也不需要太复杂的操作就可以转换为json,可以利用这一点将数据转换为string: #include <nlohmann/json.hpp> #include <string> #include <vector> #include <tuple> #include <…

P1228 地毯填补问题

地毯填补问题 题目描述 相传在一个古老的阿拉伯国家里&#xff0c;有一座宫殿。宫殿里有个四四方方的格子迷宫&#xff0c;国王选择驸马的方法非常特殊&#xff0c;也非常简单&#xff1a;公主就站在其中一个方格子上&#xff0c;只要谁能用地毯将除公主站立的地方外的所有地…

关键字:extern ;什么时候类 对象 方法 定义在.h中;

2 关键字:extern 结论就是 严格是extern应该和头文件一起使用, 但是项目简单就可以直接使用? 在简单的项目或者临时的测试代码中&#xff0c;直接使用extern关键字而不通过头文件来声明外部函数或变量是可以的&#xff0c;这种情况下可能会更快捷一些。但是&#xff0c;即使在…

数据可视化 pycharts实现时间数据可视化

自用版 数据格式为&#xff1a; 运行效果为&#xff1a; from pyecharts import options as opts from pyecharts.charts import Polar, Page import csv filename "./hot-dog-places.csv" data_x [] data_y [] with open(filename) as f:reader csv.reade…

前端使用cache storage实现远程图片缓存

Cache Storage 的主要特点和用途 缓存网络资源&#xff1a;可以将经常访问的网络资源缓存到 Cache Storage 中&#xff0c;以提高网页加载速度&#xff0c;减少网络请求。离线访问&#xff1a;当用户处于离线状态时&#xff0c;可以使用 Cache Storage 中的缓存资源来加载网页…

【系统设计】12306架构设计难点(下)

欢迎关注公众号&#xff08;通过文章导读关注&#xff1a;【11来了】&#xff09;&#xff0c;及时收到 AI 前沿项目工具及新技术的推送&#xff01; 在我后台回复 「资料」 可领取编程高频电子书&#xff01; 在我后台回复「面试」可领取硬核面试笔记&#xff01; 文章导读地址…

实现两栏布局和三栏布局的多种详细方法

目录 一、背景两栏布局三栏布局 二、两栏布局flex弹性布局 三、三栏布局两边使用 float&#xff0c;中间使用 margin两边使用 absolute&#xff0c;中间使用 margin两边使用 float 和负 margin使用 display: table 实现使用flex实现grid网格布局 参考文献 一、背景 在日常布局…

永磁同步电机速度环闭环控制

文章目录 1、速度环分析2、电机参数3、PI计算4、模型仿真4.1 模型总览4.2 实际转速与参考转速对比4.3 转矩波形4.4 相电流采样波形 模型下载地址&#xff1a; 链接: 速度闭环模型&#xff08;速度电流双闭环&#xff09; 1、速度环分析 2、电机参数 Udc24 V Rs0.6 LdLq1.4e-3…

【2024美国大学生数学建模竞赛】2024美赛C题 问题分析、数学模型、实现代码、完整论文

【2023美国大学生数学建模竞赛】2024美赛C题 问题分析、数学模型、实现代码、完整论文 引言 题目将于2024年2月2日6:00发布。我们团队将会在8点前准时更新问题分析&#xff0c;逐步更新数学模型和实现代码&#xff0c;最后发布完整的论文。 更新进展&#xff1a; &#xff08;…

Java开发常用框架:效率框架、测试框架、日志框架、安全框架总结

目录 1、Java效率框架 1.Lombox 2.MapStruct 2、测试框架 1.JUnit 2.TestNG 3、日志框架 1.Log4j 2.SLF4J 4、安全框架 1.Spring Security 2.Apache Shiro 1、Java效率框架 常见Java效率框架&#xff1a;Lombox、MapStruct等。 1.Lombox Lombox和MapStruct都是常见…

docker导出conda环境的流程

要在 Docker 中导出 Conda 环境&#xff0c;需要创建一个 Docker 镜像&#xff0c;该镜像包含 Conda 环境。 步骤如下&#xff1a; 创建 Conda 环境并导出环境文件&#xff1a; 首先&#xff0c;在本地机器上创建一个 Conda 环境。 然后使用 conda env export > environme…

【算法】Partitioning the Array(数论)

题目 Allen has an array a1,a2,…,an. For every positive integer k that is a divisor of n, Allen does the following: He partitions the array into n/k disjoint subarrays of length k. In other words, he partitions the array into the following subarrays: [a1,…

【Redis】签到点赞和UV统计

Redis签到点赞和UV统计 点赞 点赞功能分析 需求&#xff1a; 同一个用户只能点赞一次&#xff0c;再次点击则取消点赞如果当前用户已经点赞&#xff0c;则点赞按钮高亮显示&#xff08;前端判断字段isLike属性&#xff09; 实现步骤&#xff1a; 利用Redis的set集合判断是…

关于修改数据库服务器时间导致达梦数据库集群裂开

故障原因&#xff1a; 因为每天数据库服务器时间都不一致&#xff0c;想要给数据库服务器配置个NTP服务器。结果导致达梦数据库裂库。后面查看了达梦系统管理员手册了解了达梦集群的机制&#xff0c;知道数据库服务器时间需要先关闭数据库服务之后才可以修改数据库服务器时间。…

五款颠覆工作方式的工作软件

在当今快节奏的工作环境中&#xff0c;选择合适的工作软件是提高效率、实现协作的关键。感谢你的提问&#xff0c;下面我将为你介绍五款令人赞叹的工作软件&#xff0c;它们会让你的工作变得更有趣而富有成效&#xff01; 1. 亿可达 是我最近在用的一款软件连接器&#xff0c…

ubuntu16.04环境轻松安装和应用opencv4.9.0(基于源码编译)

目录 一、环境准备 1、安装cmake 2、安装依赖 3、从github上下载opencv4.9.0.zip 二、安装opencv4.9.0 1、解压4.9.0.zip 2、进入build目录编译 3、安装编译好的相关库 4、修改opencv配置文件并使其生效 5、添加PKG_CONFIG路径&#xff0c;并使其生效 三、opencv环境…

聚道云软件连接器:连接薪人薪事与携程商旅的桥梁,出差管理效率的新篇章

客户介绍 某科技有限公司是一家专注于提供数字化解决方案的高科技企业。公司拥有一支由业内资深专家和优秀工程师组成的团队&#xff0c;致力于为企业提供全方位的数字化服务。该公司拥有自主研发能力&#xff0c;拥有多项知识产权和专利技术&#xff0c;确保为客户提供技术领…

2024美赛数学建模A题思路源码

比赛当天第一时间更新&#xff01; 赛题目的 赛题目的&#xff1a; 问题描述&#xff1a; 解题的关键&#xff1a; 问题一. 问题分析 问题解答 问题二. 问题分析 问题解答 问题三. 问题分析 问题解答 问题四. 问题分析 问题解答 问题五. 问题分析 问题解答