//1、首先安装stomp
yarn add stompjs
yarn add sockjs-client
//2、引入
import Stomp from 'stompjs';
let client;
//mpData为传过来的参数。里面包含基本的用户名,密码,主机,超时时间等等
export function MqMessage(mpData) {
  client = Stomp.client(mpData.url);
  let value = null;
  var headers = {
    login: mpData.username,
    passcode: mpData.userpwd,
    //虚拟主机,默认“/”
    host: mpData.vhost,
    // 'accept-version': '1.1,1.0',
    // 'heart-beat': '100000,10000',
    // 'client-id': 'my-client-id'
  };
  //创建连接,放入连接成功和失败回调函数
  client.connect(headers, onConnected, onFailed);
  
  function onConnected(frame) {
    // console.log('Connected: ' + frame);
    //绑定交换机exchange_pushmsg是交换机的名字rk_pushmsg是绑定的路由key
    //如果不用通过交换机发则如下直接写队列名称就行
    var exchange = mpData.queue;
    //创建随机队列用上面的路由key绑定交换机,放入收到消息后的回调函数和失败的回调函数
    //是交换机把下面/queue/改为/exchange/
    client.subscribe('/queue/' + exchange, responseCallback, {
      ack: 'client',
      'x-message-ttl': mpData.args['x-message-ttl'],  //这个为我的超时时间
      durable: true,
    });
    // console.log(frame);
  }
  function onFailed(frame) {
    // console.log('Failed: ' + frame);
    if (client.connected) {
      client.disconnect(function () {
        client.connect(headers, onConnected, onFailed);
      });
    }
    else {
      client.connect(headers, onConnected, onFailed);
    }
  }
  function responseCallback(frame) {
    value = frame.body;
    // console.log('得到的消息 msg=>' + frame.body);
    // console.log(frame);
    //接收到服务器推送消息,向服务器定义的接收消息routekey路由rk_recivemsg发送确认消息
    frame.ack();
  }
  // return value;
}
// 断开连接
export function DisMqMessage() {
  try {
    if (client.connected) {
      client.disconnect();
    }
  } catch (e) {}
}

GitHub 加速计划 / vu / vue
207.54 K
33.66 K
下载
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
最近提交(Master分支:2 个月前 )
73486cb5 * chore: fix link broken Signed-off-by: snoppy <michaleli@foxmail.com> * Update packages/template-compiler/README.md [skip ci] --------- Signed-off-by: snoppy <michaleli@foxmail.com> Co-authored-by: Eduardo San Martin Morote <posva@users.noreply.github.com> 4 个月前
e428d891 Updated Browser Compatibility reference. The previous currently returns HTTP 404. 5 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐