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 相关文章推荐
简单PHP上传图片、删除图片实现代码
May 12 PHP
基于php设计模式中单例模式的应用分析
May 15 PHP
php引用传值实例详解学习
Nov 06 PHP
在PHP中使用X-SendFile头让文件下载更快
Jun 01 PHP
11个PHPer必须要了解的编程规范
Sep 22 PHP
php获取本周星期一具体日期的方法
Apr 20 PHP
php实现的RSS生成类实例
Apr 23 PHP
php将html转成wml的WAP标记语言实例
Jul 08 PHP
实现PHP框架系列文章(6)mysql数据库方法
Mar 04 PHP
Yii框架表单模型和验证用法
May 20 PHP
php中错误处理操作实例分析
Aug 23 PHP
浅谈PHP中的那些魔术常量
Dec 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
调频问题解答
2021/03/01 无线电
PHP开启gzip页面压缩实例代码
2010/03/11 PHP
php 模拟post_验证页面的返回状态(实例讲解)
2013/10/28 PHP
PHP+Mysql实现多关键字与多字段生成SQL语句的函数
2014/11/05 PHP
php创建、获取cookie及基础要点分析
2015/01/26 PHP
PHP生成静态HTML文档实现代码
2016/06/23 PHP
jquery中动态效果小结
2010/12/16 Javascript
js下将字符串当函数执行的方法
2011/07/13 Javascript
各种常用的JS函数整理
2013/10/25 Javascript
jquery实现input输入框实时输入触发事件代码
2014/01/28 Javascript
为JS扩展Array.prototype.indexOf引发的问题及解决办法
2015/01/21 Javascript
jQuery地图map悬停显示省市代码分享
2015/08/20 Javascript
NodeJS实现阿里大鱼短信通知发送
2016/01/17 NodeJs
JavaScript实现99乘法表及隔行变色实例代码
2016/02/24 Javascript
Bootstrap登陆注册页面开发教程
2016/07/12 Javascript
JavaScript SHA1加密算法实现详细代码
2016/10/06 Javascript
JS+HTML5 FileReader对象用法示例
2017/04/07 Javascript
微信小程序商品详情页规格属性选择示例代码
2017/10/30 Javascript
JavaScript中Object值合并方法详解
2017/12/22 Javascript
详解node child_process模块学习笔记
2018/01/24 Javascript
详解Webpack loader 之 file-loader
2018/11/07 Javascript
javascript+HTML5 canvas绘制时钟功能示例
2019/05/15 Javascript
基于jQuery实现挂号平台首页源码
2020/01/06 jQuery
Vue 实现拨打电话操作
2020/11/16 Javascript
为Python的web框架编写前端模版的教程
2015/04/30 Python
python使用xmlrpclib模块实现对百度google的ping功能
2015/06/02 Python
python生成器,可迭代对象,迭代器区别和联系
2018/02/04 Python
python 反向输出字符串的方法
2018/07/16 Python
CentOS 7下安装Python3.6 及遇到的问题小结
2018/11/08 Python
Python3并发写文件与Python对比
2019/11/20 Python
python计算auc的方法
2020/09/09 Python
快速创建 HTML5 Canvas 电信网络拓扑图的示例代码
2018/03/21 HTML / CSS
英国家喻户晓的折扣商场:TK Maxx
2017/05/26 全球购物
小学优秀辅导员事迹材料
2014/05/11 职场文书
经典演讲稿汇总
2014/05/19 职场文书
主要领导对照检查材料
2014/08/26 职场文书