简单尝试了node下的ActiveMQ

1、下载apache-activemq-5.9.0,执行bat文件;

2、登录http://localhost:8161/admin可查看其管理后台;

3、安装stomp客户端 npm install stomp-client

4、修改基础代码如下:

  1. var Stomp = require('stomp-client');
  2. var readline = require('readline');
    //创建两个不同的topic
  3. var topic1 = '/topic/topic1';
  4. var topic2 = '/topic/topic2';
  5.  
  6. var rl = readline.createInterface({
  7. input : process.stdin,
  8. output : process.stdout,
  9. terminal : false
  10. });
  11.  
  12. //1. publisher-subscribe 定义一个或者多个topic,然后给这些topic发送消息
  13. //2. p2p 双方通过一个quene来发送、接收消息,一个quene只有一个发送、一个接收
  14. //3. request-response 双方各有一个quene作为彼此的收发,相当于两个p2p
  15.  
  16. var publisher = new Stomp('127.0.0.1', 61613, '', ''); //发布者
  17. var subscriberA = new Stomp('127.0.0.1', 61613, '', ''); //订阅者A
  18. var subscriberB = new Stomp('127.0.0.1', 61613, '', ''); //订阅者B
  19.  
  20. publisher.connect(function(sessionId) {
  21. rl.on('line', function(line) {
  22. switch (line.split(":")[0]) {
  23.  
  24. case 'topic1':
  25. publisher.publish(topic1, line.split(":")[1]);
  26. break;
  27. case 'topic2':
  28. publisher.publish(topic2, line.split(":")[1]);
  29. break;
  30. default:
  31. console.log('commond error `' + line.trim() + '`');
  32. break;
  33. }
  34. rl.prompt();
  35. }).on('close', function() {
  36. console.log('close test project!');
  37. process.exit(0);
  38. });
  39. });
  40.  
  41. subscriberA.connect(function(sessionId) {
  42. subscriberA.subscribe(topic1, function(body, headers) {
  43. console.log('subscriberA From Topic1:', body);
  44. });
  45. subscriberA.subscribe(topic2, function(body, headers) {
  46. console.log('subscriberA From Topic2:', body);
  47. });
  48. });
  49.  
  50. subscriberB.connect(function(sessionId) {
  51. subscriberB.subscribe(topic1, function(body, headers) {
  52. console.log('subscriberB From Topic1:', body);
  53. });
  54. subscriberB.subscribe(topic2, function(body, headers) {
  55. console.log('subscriberB From Topic2:', body);
  56. });
  57. });

输入不同命令后,控制台输出如下:

同时在管理后台的topic栏目下,查看创建的topic

node(ActiveMq)的更多相关文章

  1. ActiveMQ, Qpid, HornetQ and RabbitMQ in Comparison

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  2. babeljs源码

    babel.min.js!function(e,t){"object"==typeof exports&&"object"==typeof mo ...

  3. ActiveMQ的集群方案对比及部署

    转载:http://blog.csdn.net/lifetragedy/article/details/51869032 ActiveMQ的集群 内嵌代理所引发的问题: 消息过载 管理混乱 如何解决这 ...

  4. How to configure security of ActiveMQ ?

    Terms {activemq.home}: The ActiveMQ installation folder. How to configure ActiveMQ to use JAAS Authe ...

  5. Activemq mqtt 点对点聊天实现(转载)

    我这想到一个点对点聊天的方法,不用没割人都建立一个topic了,思路还是自定义一个分发策略,具体如下: 1.  建立一个topic,所有人都用匹配订阅的方式订阅以该topic为头的topic,例如:所 ...

  6. ActiveMQ实现负载均衡+高可用部署方案

    一.架构和技术介绍 1.简介 ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线.完全支持JMS1.1和J2EE 1.4规范的JMS Provider实现 2.activemq的特 ...

  7. JMS学习(六)-ActiveMQ的高可用性实现

    原文地址:http://www.cnblogs.com/hapjin/p/5663024.html 一,ActiveMQ高可用性的架构 ActiveMQ的高可用性架构是基于Master/Slave 模 ...

  8. ActiveMQ实现负载均衡+高可用部署方案(转)

    本文转自:http://www.open-open.com/lib/view/open1400126457817.html%20 一.架构和技术介绍 1.简介 ActiveMQ 是Apache出品,最 ...

  9. How to Setup Replicated LevelDB Persistence in Apache ActiveMQ 5.9--转载

    原文地址:https://simplesassim.wordpress.com/2013/11/03/how-to-setup-replicated-leveldb-persistence-in-ap ...

随机推荐

  1. Python应用03 使用PyQT制作视频播放器

    作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁任何形式转载. 最近研究了Python的两个GUI包,Tkinter和PyQT.这两个GUI包的底层分别是Tcl/ ...

  2. Phoenix综述(史上最全Phoenix中文文档)

    个人主页:http://www.linbingdong.com 简书地址:http://www.jianshu.com/users/6cb45a00b49c/latest_articles 网上关于P ...

  3. npm 使用小结

    本文内容基于 npm 4.0.5 概述 npm (node package manager),即 node 包管理器.这里的 node 包就是指各种 javascript 库. npm 是随同 Nod ...

  4. 用django创建一个项目

    首先你得安装好python和django,然后配置好环境变量,安装python就不说了,从配置环境变量开始 1.配置环境变量 在我的电脑处点击右键,或者打开 控制面板\系统和安全\系统 -> 左 ...

  5. OSGi规范的C#实现开源

    这是大约在3-4年前完成的一个C#实现的OSGi框架,实现的过程参照了OSGi规范与与一些实现思路(感谢当时的那些资料与项目),此框架虽然仅在几个小型项目有过实际的应用,但OSGi的规范实现还是相对比 ...

  6. 清除打印机队列中无法清除的任务 & 清空打印池

    故障现象典型表现为以下两种情况 1.当打印任务开始进行时,这些打印任务便被保存在打印作业列表(也称打印队列)内.如果打印机因意外暂停(如打印机未连接)而未完成打印任务,则该打印任务将列入打印队列,并且 ...

  7. 1 selenium3.0.1无法打开火狐浏览器

    [问题描述] 1.配置selenium3.0和java后,尝试打开火狐浏览器,提示缺少geckodriver驱动. [解决方案] 1.在http://www.seleniumhq.org/downlo ...

  8. mono for android学习过程系列教程(4)

    今天要讲的事情是构建安卓程序的UI界面. 首先给大家上点小点心,如图: 上面就是我们界面的设计模块,仔细看中间大块的下方,有一个Source,这就类似webform里面的设计和源代码界面. 在这个页面 ...

  9. Maven实战:Maven生命周期

    前言 之前有写过一篇文章Maven实战,介绍了Maven的一些基本概念,以及对于一个初学者而言的Maven基础知识,当时在我看来掌握了这些基本是够用的. 随着工作的深入,越来越感觉对于Maven的理解 ...

  10. 安全防范:nginx下git引发的隐私泄露问题

    安全防范:nginx下git引发的隐私泄露问题 1   安全事件 最近阿里云服务器后台管理系统中收到一条安全提示消息,系统配置信息泄露: http://my.domain.com/.git/confi ...