未加星标

PHP使用ActiveMQ实例

字体大小 | |
[开发(php) 所属分类 开发(php) | 发布者 店小二05 | 时间 | 作者 红领巾 ] 0人收藏点击收藏

使用点对点(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)相关术语:php代码审计工具 php开发工程师 移动开发者大会 移动互联网开发 web开发工程师 软件开发流程 软件开发工程师

主题: PHP消费数据重复消费
tags: gt,stomp,frame,php,true,obj,data,new,lt,tcp,Stomp,json,userReg,#63
分页:12
转载请注明
本文标题:PHP使用ActiveMQ实例
本站链接:http://www.codesec.net/view/572358.html
分享请点击:


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 开发(php) | 评论(0) | 阅读(26)