vue 使用stomp链接rabbitmq

前置条件 后端环境已配好rabbitmq

后端环境:
rabbtmq搭建不再描述。
截图如下:
在这里插入图片描述

前端环境

1.运行 安装stompjs命令

npm install stompjs

2.创建sysconstant.js.

/**
 * 配置文件,记录系统中固定的参数
 */
//注意:大坑,地址要对应后端rabbitmq中的procol的http/web-stomp 的端口
export const MQTT_SERVICE = "ws://192.168.1.101:15674/ws"; // mqtt服务地址
export const MQTT_USERNAME = "admin"; // mqtt连接用户名
export const MQTT_PASSWORD = "password"; // mqtt连接密码

3.Vue组件内容:

script:

import Stomp from "stompjs";
import {
  MQTT_SERVICE,
  MQTT_USERNAME,
  MQTT_PASSWORD,
} from "../assets/js/sysconstant";

data:

// 客户端
client: Stomp.client(MQTT_SERVICE),

methods:

    // mqtt连接成功后
    onConnected: function (frame) {
      console.log("Connected: " + frame);
//注意:大坑,主题前要加/topic.
      var topic = "/topic/abc";
      // ---订阅频道
      this.client.subscribe(topic, this.responseCallback, this.onFailed);
    },
    // 连接失败
    onFailed: function (frame) {
      console.log("Failed: " + frame);
    },
    //  连接对应topic 返回函数
    responseCallback: function (frame) {
      this.currentControlName = responseCallback;
      console.log("responseCallback msg=>" + frame.body);
      // ---接收消息
    },
    // 进行连接
    connect: function () {
      // ---初始化mqtt客户端,并连接mqtt服务
      var clientid = "mqttjs_" + Math.random().toString(16).substring(2, 8);
      var headers = {
        login: MQTT_USERNAME,//登录账号
        passcode: MQTT_PASSWORD,//密码
        "client-id": clientid,// 客户id
        // additional header
      };
      this.client.connect(headers, this.onConnected, this.onFailed);
    },

最后在onMounted 周期函数里 运行 this.connect() 即可,

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐