//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
108
18
下载
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
最近提交(Master分支:2 个月前 )
9e887079 [skip ci] 1 年前
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> 1 年前
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐