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 相关文章推荐
一个从别的网站抓取信息的例子(域名查询)
Oct 09 PHP
一个简易需要注册的留言版程序
Oct 09 PHP
java EJB 加密与解密原理的一个例子
Jan 11 PHP
php读取javascript设置的cookies的代码
Apr 12 PHP
支持生僻字且自动识别utf-8编码的php汉字转拼音类
Jun 27 PHP
php将文本文件转换csv输出的方法
Dec 31 PHP
PHP实现操作redis的封装类完整实例
Nov 14 PHP
php安装扩展mysqli的实现步骤及报错解决办法
Sep 23 PHP
PHP面向对象五大原则之单一职责原则(SRP)详解
Apr 04 PHP
php实现支付宝当面付(扫码支付)功能
May 30 PHP
PHP 文件上传限制问题
Sep 01 PHP
php进程(线程)通信基础之System V共享内存简单实例分析
Nov 09 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中通过加号合并数组的一个简单方法分享
2011/01/27 PHP
浅谈laravel orm 中的一对多关系 hasMany
2019/10/21 PHP
一个页面元素appendchild追加到另一个页面元素的问题
2013/01/27 Javascript
js报$ is not a function 的问题的解决方法
2014/01/20 Javascript
javascript中数组的多种定义方法和常用函数简介
2014/05/09 Javascript
JavaScript之数组(Array)详解
2015/04/01 Javascript
JQuery CheckBox(复选框)操作方法汇总
2015/04/15 Javascript
jQuery基于ajax实现星星评论代码
2015/08/07 Javascript
Javascript编程之继承实例汇总
2015/11/28 Javascript
微信小程序(六):列表上拉加载下拉刷新示例
2017/01/13 Javascript
JS实现新建文件夹功能
2017/06/17 Javascript
JavaScript实现图片懒加载的方法分析
2018/07/05 Javascript
vue-cli3.X快速创建项目的方法步骤
2019/11/14 Javascript
Node.js API详解之 Error模块用法实例分析
2020/05/14 Javascript
JavaScript设计模式之策略模式实现原理详解
2020/05/29 Javascript
VUE UPLOAD 通过ACTION返回上传结果操作
2020/09/07 Javascript
解决vue项目中出现Invalid Host header的问题
2020/11/17 Javascript
python daemon守护进程实现
2016/08/27 Python
python dataframe常见操作方法:实现取行、列、切片、统计特征值
2018/06/09 Python
python开启摄像头以及深度学习实现目标检测方法
2018/08/03 Python
在Python dataframe中出生日期转化为年龄的实现方法
2018/10/20 Python
Python namedtuple命名元组实现过程解析
2020/01/08 Python
Python面向对象实现方法总结
2020/08/12 Python
python 利用toapi库自动生成api
2020/10/19 Python
使用CSS3代码绘制可爱的Hello Kitty猫
2016/08/03 HTML / CSS
Html5如何唤起百度地图App的方法
2019/01/27 HTML / CSS
HTML5之HTML元素扩展(上)—新增加的元素及使用概述
2013/01/31 HTML / CSS
e路東瀛(JAPANiCAN)香港:日本旅游、日本酒店和温泉旅馆预订
2018/11/21 全球购物
介绍一下SQL Server的全文索引
2013/08/15 面试题
学校标语大全
2014/06/19 职场文书
会议欢迎标语
2014/06/30 职场文书
中学生教师节演讲稿
2014/09/03 职场文书
2014国庆节餐厅促销活动策划方案
2014/09/16 职场文书
青年文明号汇报材料
2014/12/23 职场文书
就业推荐表导师评语
2014/12/31 职场文书
教学工作总结范文5篇
2019/08/19 职场文书