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 相关文章推荐
第十二节 类的自动加载 [12]
Oct 09 PHP
无数据库的详细域名查询程序PHP版(5)
Oct 09 PHP
ASP和PHP都是可以删除自身的
Apr 09 PHP
PHP得到某段时间区间的时间戳 php定时任务
Apr 12 PHP
简单的php数据库操作类代码(增,删,改,查)
Apr 08 PHP
php 模拟get_headers函数的代码示例
Apr 27 PHP
php判断电脑访问、手机访问的例子
May 10 PHP
采用ThinkPHP中F方法实现快速缓存实例
Jun 13 PHP
php实现微信发红包功能
Jul 13 PHP
PHP自定义递归函数实现数组转JSON功能【支持GBK编码】
Jul 17 PHP
Laravel如何自定义command命令浅析
Mar 23 PHP
PHP实现爬虫爬取图片代码实例
Mar 03 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 foreach、while性能比较
2009/10/15 PHP
PHP setcookie指定domain参数后,在IE下设置cookie失效的解决方法
2011/09/09 PHP
php遍历所有文件及文件夹的方法深入解析
2013/06/08 PHP
php操作mysql数据库的基本类代码
2014/02/25 PHP
php中的curl使用入门教程和常见用法实例
2014/04/10 PHP
PHP遍历数组的方法汇总
2015/04/30 PHP
php 如何获取文件的后缀名
2016/06/05 PHP
PHP中数组转换为SimpleXML教程
2019/01/27 PHP
斜45度寻路实现函数
2009/08/20 Javascript
从零开始学习jQuery (六) jquery中的AJAX使用
2011/02/23 Javascript
jquery 操作两个select实现值之间的互相传递
2014/03/07 Javascript
node.js下when.js 的异步编程实践
2014/12/03 Javascript
JavaScript中的Web worker多线程API研究
2014/12/06 Javascript
最精简的JavaScript实现鼠标拖动效果的方法
2015/05/11 Javascript
jQuery Ajax 加载数据时异步显示加载动画
2016/08/01 Javascript
想用好React的你必须要知道的一些事情
2017/07/24 Javascript
用node撸一个监测复联4开售短信提醒的实现代码
2019/04/10 Javascript
js实现整体缩放页面适配移动端
2020/03/31 Javascript
JavaScript ES6 Class类实现原理详解
2020/05/08 Javascript
JavaScript实现串行请求的示例代码
2020/09/14 Javascript
Vue.js桌面端自定义滚动条组件之美化滚动条VScroll
2020/12/01 Vue.js
对pandas中两种数据类型Series和DataFrame的区别详解
2018/11/12 Python
pyqt5 QScrollArea设置在自定义侧(任何位置)
2019/09/25 Python
pyqt5中动画的使用详解
2020/04/01 Python
django Layui界面点击弹出对话框并请求逻辑生成分页的动态表格实例
2020/05/12 Python
html5指南-7.geolocation结合google maps开发一个小的应用
2013/01/07 HTML / CSS
利用html5 canvas破解简单验证码及getImageData接口应用
2013/01/25 HTML / CSS
Calzedonia美国官网:意大利风格袜子、打底裤和沙滩装
2018/07/19 全球购物
物流创业计划书
2014/02/01 职场文书
餐饮收银员岗位职责
2014/02/07 职场文书
公司司机岗位职责
2014/02/07 职场文书
科技之星事迹材料
2014/06/02 职场文书
教育系统干部作风整顿心得体会
2014/09/09 职场文书
2014年计生工作总结
2014/11/21 职场文书
异地恋情人节寄语
2015/02/28 职场文书
2016年党员创先争优承诺书
2016/03/25 职场文书