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&amp;mysql(二)
Oct 09 PHP
PHP发明人谈MVC和网站设计架构 貌似他不支持php用mvc
Jun 04 PHP
关于php连接mssql:pdo odbc sql server
Jul 20 PHP
模板引擎smarty工作原理以及使用示例
May 25 PHP
实现在同一方法中获取当前方法中新赋值的session值解决方法
Jun 26 PHP
PHP中unset,array_splice删除数组中元素的区别
Jul 28 PHP
浅谈PHP正则中的捕获组与非捕获组
Jul 18 PHP
SAE实时日志接口SDK用法示例
Oct 09 PHP
ThinkPHP3.2框架使用addAll()批量插入数据的方法
Mar 16 PHP
php实现保存周期为1天的购物车类
Jul 07 PHP
PHP实现的数组和XML文件相互转换功能示例
Mar 15 PHP
详解PHP版本兼容之openssl调用参数
Jul 25 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制作简单分页(从数据库读取记录)的方法详解
2013/05/04 PHP
smarty中post用法实例
2014/11/28 PHP
PHP入门教程之正则表达式基本用法实例详解(正则匹配,搜索,分割等)
2016/09/11 PHP
彻底搞懂JS无缝滚动代码
2007/01/03 Javascript
几行代码轻松搞定jquery实现flash8类似的连接效果
2007/05/03 Javascript
让 JavaScript 轻松支持函数重载 (Part 2 - 实现)
2009/08/04 Javascript
JavaScript 嵌套函数指向this对象错误的解决方法
2010/03/15 Javascript
Jquery中getJSON在asp.net中的使用说明
2011/03/10 Javascript
JQuery扩展插件Validate—4设置错误提示的样式
2011/09/05 Javascript
IE中jquery.form中ajax提交没反应解决方法分享
2012/09/11 Javascript
javascript使用call调用微信API
2014/12/15 Javascript
纯css实现窗户玻璃雨滴逼真效果
2015/08/23 Javascript
javascript 四十条常用技巧大全
2016/09/09 Javascript
详解nodejs微信公众号开发——6.自定义菜单
2017/04/13 NodeJs
Vue精简版风格概述
2018/01/30 Javascript
vue中阻止click事件冒泡,防止触发另一个事件的方法
2018/02/08 Javascript
vue父组件异步获取数据传给子组件的方法
2018/07/26 Javascript
详解微信小程序开发用户授权登陆
2019/04/24 Javascript
Vuex 模块化使用详解
2019/07/31 Javascript
关于JavaScript中异步/等待的用法与理解
2020/11/18 Javascript
通过Python爬虫代理IP快速增加博客阅读量
2016/12/14 Python
Python urlencode和unquote函数使用实例解析
2020/03/31 Python
浅谈Python3多线程之间的执行顺序问题
2020/05/02 Python
Python 必须了解的5种高级特征
2020/09/10 Python
美国派对用品及装饰品网上商店:Shindigz
2016/07/30 全球购物
车辆维修工自我评价怎么写
2013/09/20 职场文书
毕业实习指导教师评语
2014/12/31 职场文书
国庆庆典邀请函
2015/02/02 职场文书
2015年班长个人工作总结
2015/04/03 职场文书
匿名信格式范文
2015/05/27 职场文书
投诉信范文
2015/07/02 职场文书
2015年秋学期教研工作总结
2015/10/14 职场文书
外出考察学习心得体会
2016/01/18 职场文书
2016年离婚协议书范文
2016/03/18 职场文书
Python中的xlrd模块使用整理
2021/06/15 Python
Python3的进程和线程你了解吗
2022/03/16 Python