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 相关文章推荐
E路文章系统PHP
Dec 11 PHP
DedeCMS dede_channeltype表字段注释
Apr 07 PHP
PHP新手入门学习方法
May 08 PHP
php中用socket模拟http中post或者get提交数据的示例代码
Aug 08 PHP
ThinkPHP模板IF标签用法详解
Jul 01 PHP
在SAE上搭建最新wordpress的方法
Dec 21 PHP
php获取twitter最新消息的方法
Apr 14 PHP
php中使用base HTTP验证的方法
Apr 20 PHP
php实现搜索一维数组元素并删除二维数组对应元素的方法
Jul 06 PHP
php中引用符号(&amp;)的使用详细介绍
Dec 06 PHP
PHP使用Redis长连接的方法详解
Feb 12 PHP
PHP Cli 模式设置进程名称的方法
Jun 12 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循环遍历数组的3种方法list()、each()和while总结
2014/11/19 PHP
php数组函数array_key_exists()小结
2015/12/10 PHP
Laravel如何友好的修改.env配置文件详解
2017/06/07 PHP
PHP基于openssl实现的非对称加密操作示例
2019/01/11 PHP
php+Ajax无刷新验证用户名操作实例详解
2019/03/04 PHP
TP5(thinkPHP框架)实现后台清除缓存功能示例
2019/05/29 PHP
用javascript实现的支持lrc歌词的播放器
2007/05/17 Javascript
自己整理的一个javascript日期处理函数
2010/10/16 Javascript
JS+flash实现chrome和ie浏览器下同时可以复制粘贴
2013/09/22 Javascript
js 数值转换为3位逗号分隔的示例代码
2014/02/19 Javascript
JavaScript中的Math.atan2()方法使用详解
2015/06/15 Javascript
javascript如何用递归写一个简单的树形结构示例
2017/09/06 Javascript
解决Angular.js中使用Swiper插件不能滑动的问题
2018/02/26 Javascript
vue单个组件实现无限层级多选菜单功能
2018/04/10 Javascript
JavaScript使用递归和循环实现阶乘的实例代码
2018/08/28 Javascript
微信小程序实现底部弹出框
2020/11/18 Javascript
使用python实现扫描端口示例
2014/03/29 Python
详解Python的Twisted框架中reactor事件管理器的用法
2016/05/25 Python
Python使用PIL模块生成随机验证码
2017/11/21 Python
python网络爬虫之如何伪装逃过反爬虫程序的方法
2017/11/23 Python
python实现单链表的方法示例
2019/09/03 Python
Django异步任务线程池实现原理
2019/12/17 Python
详解如何在PyCharm控制台中输出彩色文字和背景
2020/08/17 Python
阿里巴巴国际站:Alibaba.com
2016/07/21 全球购物
德国网上药房:Apotal
2017/04/04 全球购物
日本化妆品植村秀俄罗斯官方网站:Shu Uemura俄罗斯
2020/02/01 全球购物
教育孩子心得体会
2014/01/01 职场文书
客户接待方案
2014/02/26 职场文书
教师工作失职检讨书
2014/09/18 职场文书
精神病医院见习报告
2014/11/03 职场文书
小区环境卫生倡议书
2015/04/29 职场文书
2015年库房工作总结
2015/04/30 职场文书
大学生就业意向书
2015/05/11 职场文书
项目备案申请报告
2015/05/15 职场文书
高中体育课教学反思
2016/02/16 职场文书
导游词之秦始皇兵马俑博物馆
2019/09/29 职场文书