php 使用ActiveMQ发送消息,与处理消息操作示例


Posted in PHP onFebruary 23, 2020

本文实例讲述了php 使用ActiveMQ发送消息,与处理消息操作。分享给大家供大家参考,具体如下:

我们以一个简单的用户注册为例,当用户点击注册按钮后,我们发送一个消息,后台php接收到该消息然后处理。

1.php代码如下:

<?php
$stomp = new Stomp('tcp://192.168.1.222:61613');

$obj = new Stdclass();
//下面这些数据,实际中是用户通过前端页面post来的,这里只做演示
$obj->username = 'test';
$obj->password = '123456';
//发送一个注册消息到队列,我们这里模拟用户注册
$stomp->send('/queue/userReg', json_encode($obj));

2.php代码如下:

<?php
$stomp = new Stomp('tcp://192.168.1.222:61613');
//订阅只对一个有效,如果启动多个脚本,只有一个会接收到消息
$stomp->subscribe('/queue/userReg');

while(true) {
 //判断是否有读取的信息
 if($stomp->hasFrame()) {
  $frame = $stomp->readFrame();

  $data = json_decode($frame->body, true);
  var_dump($data);

  //我们通过获取的数据
  //处理相应的逻辑,比如存入数据库,发送验证码等一系列操作。
  //$db->query("insert into user values('{$username}','{$password}')");
  //sendVerify();

  //表示消息被处理掉了,ack()函数很重要
  $stomp->ack($frame);
 }
 sleep(1);
}

分别运行上面两个脚本文件

> /data/php56/bin/php 1.php
> /data/php56/bin/php 2.php

php 使用ActiveMQ发送消息,与处理消息操作示例

我们还可以把上面的2.php代码分成多步执行。

2.php代码如下:

<?php
$stomp = new Stomp('tcp://192.168.1.222:61613');
$stomp->subscribe('/queue/userReg');

while(true) {
 //判断是否有读取的信息
 if($stomp->hasFrame()) {
  $frame = $stomp->readFrame();

  $data = json_decode($frame->body, true);

  //注册信息入库
  //$ret = db->query("insert into user values('{$data['username']}', '{$data['password']}')");
  //这里演示直接设成true了
  $ret = true;
  if($ret) {
   echo $data['username'], '入库成功', PHP_EOL;
   //如果入库成功,再次把数据发送到另一个消息队列中,进行下一步处理
   $stomp->send('/queue/sendVerify', $frame->body);

   $stomp->ack($frame);
  }
 }
 sleep(1);
}

3.php代码如下:

<?php
$stomp = new Stomp('tcp://192.168.1.222:61613');
$stomp->subscribe('/queue/sendVerify');

while(true) {
 //判断是否有读取的信息
 if($stomp->hasFrame()) {
  $frame = $stomp->readFrame();

  $data = json_decode($frame->body, true);

  //$ret = sendVerify()发送验证码,实际中应该是请求某接口
  $ret = true;
  if($ret) {
   echo $data['username'], '发送验证码成功', PHP_EOL;

   $stomp->ack($frame);
  }
 }
 sleep(1);
}

再次分别运行上面的三个脚本

> /data/php56/bin/php 1.php
> /data/php56/bin/php 2.php
> /data/php56/bin/php 3.php

php 使用ActiveMQ发送消息,与处理消息操作示例

php 使用ActiveMQ发送消息,与处理消息操作示例

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
通过5个php实例细致说明传值与传引用的区别
Aug 08 PHP
PHP实现下载功能的代码
Sep 29 PHP
PHP HTML JavaScript MySQL代码如何互相传值的方法分享
Sep 30 PHP
使用PHP uniqid函数生成唯一ID
Nov 18 PHP
php实现无限级分类查询(递归、非递归)
Mar 10 PHP
Yii框架实现的验证码、登录及退出功能示例
May 20 PHP
PHP验证码无法显示的原因及解决办法
Aug 11 PHP
php之header的不同用法总结(实例讲解)
Nov 28 PHP
PHP实现字符串大小写转函数的功能实例
Feb 06 PHP
PHP商品秒杀问题解决方案实例详解【mysql与redis】
Jul 22 PHP
Laravel框架Eloquent ORM修改数据操作示例
Dec 03 PHP
phpQuery采集网页实现代码实例
Apr 02 PHP
php实现通过stomp协议连接ActiveMQ操作示例
Feb 23 #PHP
php ActiveMQ的安装与使用方法图文教程
Feb 23 #PHP
php 多进程编程父进程的阻塞与非阻塞实例分析
Feb 22 #PHP
php7 图形用户界面GUI 开发示例
Feb 22 #PHP
PHP Beanstalkd消息队列的安装与使用方法实例详解
Feb 21 #PHP
PHP pthreads v3在centos7平台下的安装与配置操作方法
Feb 21 #PHP
PHP pthreads v3下worker和pool的使用方法示例
Feb 21 #PHP
You might like
深入PHP autoload机制的详解
2013/06/09 PHP
分享下PHP register_globals 值为on与off的理解
2013/09/26 PHP
指定位置如果有图片显示图片,无图片显示广告的JS
2010/06/05 Javascript
jquery下为Event handler传递动态参数的代码
2011/01/06 Javascript
用JavaScript实现动画效果的方法
2013/07/20 Javascript
JS返回上一页实例代码通过图片和按钮分别实现
2013/08/16 Javascript
从jquery的过滤器.filter()方法想到的
2013/09/29 Javascript
20个实用的JavaScript技巧分享
2014/11/28 Javascript
JavaScript中toString()方法的使用详解
2015/06/05 Javascript
jQuery实现日期联动效果实例
2016/07/26 Javascript
相册展示PhotoSwipe.js插件实现
2016/08/25 Javascript
js实现产品缩略图效果
2017/03/10 Javascript
微信小程序自定义底部弹出框
2020/11/16 Javascript
Ant Design Pro 下实现文件下载的实现代码
2019/12/03 Javascript
微信小程序自定义yPicker组件实现省市区三级联动功能
2020/10/29 Javascript
Django imgareaselect手动剪切头像实现方法
2015/05/26 Python
更改Ubuntu默认python版本的两种方法python-&gt; Anaconda
2016/12/18 Python
python数据类型_元组、字典常用操作方法(介绍)
2017/05/30 Python
使用Python对微信好友进行数据分析
2018/06/27 Python
对Python3中dict.keys()转换成list类型的方法详解
2019/02/03 Python
华为校园招聘上机笔试题 扑克牌大小(python)
2020/04/22 Python
python做反被爬保护的方法
2019/07/01 Python
使用python绘制二维图形示例
2019/11/22 Python
信号生成及DFT的python实现方式
2020/02/25 Python
pycharm 代码自动补全的实现方法(图文)
2020/09/18 Python
HTML5不支持标签和新增标签详解
2016/06/27 HTML / CSS
美国药妆网站:EDCskincare.com(防晒、痤疮、抗衰老等)
2017/04/28 全球购物
爱他美官方海外旗舰店:Aptamil奶粉
2017/12/22 全球购物
King Apparel官网:英国街头服饰品牌
2019/09/05 全球购物
校园报刊亭创业计划书
2014/01/02 职场文书
多媒体专业自我鉴定
2014/02/28 职场文书
竞选劳动委员演讲稿
2014/04/28 职场文书
民警忠诚教育心得体会
2016/01/23 职场文书
解决Pytorch中关于model.eval的问题
2021/05/22 Python
Pytorch中的学习率衰减及其用法详解
2021/06/05 Python
介绍一下28个JS常用数组方法
2022/05/06 Javascript