PHP使用ActiveMQ实例


Posted in PHP onFebruary 05, 2018

使用点对点(Point To Point)模型

点对点模型特点:

  • 只有一个消费者可以接收到消息
  • 不能重复消费

生产者producer.php代码:

<?php
try {
  // 1.建立连接
  $stomp = new Stomp('tcp://47.52.119.21:61613');
  // 2.实例化类
  $obj = new Stdclass();
  // 3.获取数据
  for($i=0; $i<3; $i++){
    $obj->username = 'test';
    $obj->password = '123456';
    $queneName   = "/queue/userReg";
    // 4.发送一个注册消息到队列
    $stomp->send($queneName, json_encode($obj));
  }
} catch (StompException $e) {
  die('Connection failed: ' . $e->getMessage());
}

消费者1consumer1.php代码:

<?php

$stomp = new Stomp('tcp://localhost:61613');
$stomp->subscribe('/queue/userReg');

while (true) {
  //判断是否有读取的信息
  if ($stomp->hasFrame()) {
    $frame = $stomp->readFrame();
    $data = json_decode($frame->body, true);
    var_dump($data);
    $stomp->ack($frame);
  }
}

消费者2consumer2.php代码:

<?php

$stomp = new Stomp('tcp://localhost:61613');
$stomp->subscribe('/queue/userReg');

while (true) {
  //判断是否有读取的信息
  if ($stomp->hasFrame()) {
    $frame = $stomp->readFrame();
    $data = json_decode($frame->body, true);
    var_dump($data);
    $stomp->ack($frame);
  }
}

执行结果图如下:

PHP使用ActiveMQ实例

使用发布/订阅(Publish Subscribe)模型

发布/订阅模型特点:

多个消费者都可以收到消息
能重复消费
生产者producer.php代码:

<?php
try {
  // 1.建立连接
  $stomp = new Stomp('tcp://47.52.119.21:61613');
  // 2.实例化类
  $obj = new Stdclass();
  // 3.获取数据
  for($i = 0; $i < 3; $i++){
    $obj->username = 'test';
    $obj->password = '123456';
    $queneName   = "/topic/userReg";
    // 4.发送一个注册消息到队列
    $stomp->send($queneName, json_encode($obj));
  }
} catch (StompException $e) {
  die('Connection failed: ' . $e->getMessage());
}

消费者1consumer1.php代码:

<?php

$stomp = new Stomp('tcp://localhost:61613');
$stomp->subscribe('/topic/userReg');

while (true) {
  //判断是否有读取的信息
  if ($stomp->hasFrame()) {
    $frame = $stomp->readFrame();
    $data = json_decode($frame->body, true);
    var_dump($data);
    $stomp->ack($frame);
  }
}

消费者2consumer2.php代码:

?php

$stomp = new Stomp('tcp://localhost:61613');
$stomp->subscribe('/topic/userReg');
while (true) {
  //判断是否有读取的信息
  if ($stomp->hasFrame()) {
    $frame = $stomp->readFrame();
    $data = json_decode($frame->body, true);
    var_dump($data);
    $stomp->ack($frame);
  }
}

执行结果图如下:

PHP使用ActiveMQ实例

PHP 相关文章推荐
Discuz!下Memcache缓存实现方法
May 28 PHP
php 保留字列表
Oct 04 PHP
php中cookie的使用方法
Mar 29 PHP
PHP制作万年历
Jan 07 PHP
教你识别简单的免查杀PHP后门
Sep 13 PHP
PHP类的声明与实例化及构造方法与析构方法详解
Jan 26 PHP
PHP如何使用Memcached
Apr 05 PHP
图文详解PHP环境搭建教程
Jul 16 PHP
phpstudy默认不支持64位php的解决方法
Feb 20 PHP
Docker搭建自己的PHP开发环境
Feb 24 PHP
PHP面向对象类型约束用法分析
Jun 12 PHP
ThinkPHP5 框架引入 Go AOP,PHP AOP编程项目详解
May 12 PHP
详解PHP中mb_strpos的使用
Feb 04 #PHP
详解PHP文件的自动加载(autoloading)
Feb 04 #PHP
PHP实现QQ登录的开原理和实现过程
Feb 04 #PHP
PHP实现正则表达式分组捕获操作示例
Feb 03 #PHP
php实现解析xml并生成sql语句的方法
Feb 03 #PHP
PHP删除数组中指定下标的元素方法
Feb 03 #PHP
php学习笔记之mb_strstr的基本使用
Feb 03 #PHP
You might like
收音机的保养
2021/03/01 无线电
第二节--PHP5 的对象模型
2006/11/16 PHP
php array_filter除去数组中的空字符元素
2020/06/21 PHP
php 中文字符串首字母的获取函数分享
2013/11/04 PHP
php获取bing每日壁纸示例分享
2014/02/25 PHP
PHP中魔术变量__METHOD__与__FUNCTION__的区别
2014/09/29 PHP
php官方微信接口大全(微信支付、微信红包、微信摇一摇、微信小店)
2015/12/21 PHP
PHP实现的获取文件mimes类型工具类示例
2018/04/08 PHP
Javascript 入门基础学习
2010/03/10 Javascript
ExtJs中简单的登录界面制作方法
2010/08/19 Javascript
js 通用javascript函数库整理
2011/08/14 Javascript
Jquery实现搜索框提示功能示例代码
2013/08/13 Javascript
深入分析原生JavaScript事件
2014/12/29 Javascript
JavaScript判断浏览器类型的方法
2015/02/10 Javascript
JavaScript声明变量名的语法规则
2015/07/10 Javascript
Bootstrap每天必学之按钮
2015/11/26 Javascript
基于JavaScript代码实现pc与手机之间的跳转
2015/12/23 Javascript
jQuery实现滚动鼠标放大缩小图片的方法(附demo源码下载)
2016/03/05 Javascript
Js调用Java方法并互相传参的简单实例
2016/08/11 Javascript
AngularJS中directive指令使用之事件绑定与指令交互用法示例
2016/11/22 Javascript
Vuex中mutations与actions的区别详解
2018/03/01 Javascript
vue.js内置组件之keep-alive组件使用
2018/07/10 Javascript
layer弹出层全屏及关闭方法
2018/08/17 Javascript
vue--点击当前增加class,其他删除class的方法
2018/09/15 Javascript
Layui选项卡制作历史浏览记录的方法
2019/09/28 Javascript
Python之循环结构
2019/01/15 Python
Python开发之身份证验证库id_validator验证身份证号合法性及根据身份证号返回住址年龄等信息
2020/03/20 Python
解决阿里云邮件发送不能使用25端口问题
2020/08/07 Python
html5音频_动力节点Java学院整理
2018/08/22 HTML / CSS
艺龙旅行网酒店预订:国内、港澳台酒店
2018/06/26 全球购物
WWE美国职业摔角官方商店:WWE Shop
2018/11/15 全球购物
台湾三立电视电商平台:电电购
2019/09/09 全球购物
Jowissa官方网站:瑞士制造的手表,优雅简约的设计
2020/07/29 全球购物
五年级学生期末评语
2014/12/26 职场文书
工作计划范文之财务管理
2019/08/09 职场文书
MySQL Server层四个日志的实现
2022/03/31 MySQL