activemq stomp类
此库用来增强ide,能对stomp类进行自动提示
<?php
class Stomp
{
/**
* 构造器
* Stomp constructor.
* @param string $broker:连接地址,如:tcp://localhost:61613
* @param string $username:用户名,默认为admin
* @param string $password:密码:默认为admin
* @param array $headers:头,如['client-id'=>$clientId]等
*/
public function __construct(string $broker,string $username="admin",string $password="admin",array $headers=[])
{
} /**
* 获取连接id
*/
public function getSessionId():string{ }
/**
* 设置超时时间
* @param int $seconds:秒部分
* @param int $microseconds:毫秒部分
*/
public function setReadTimeout(int $seconds=10,int $microseconds=0){} /**
* 获取超时时间
* @return array
* array(2) {
["sec"]=>
int(2)
["usec"]=>
int(0)
}
*/
public function getReadTimeout():array { } /**
* 获取最后的一次错误
* @return string
*/
public function error():string{ } /**
* 发送消息
* @param string $queue:队列名
* @param mixed $msg:消息内容
* @param array $headers:头
* @return bool:是否成功
*/
public function send(string $queue,mixed $msg,array $headers=[]):bool{ } /**
* 订阅某个队列,然后调用readFrame可以获取到消息
* @param $queue:队列名
* @param $headers:头参数数组
* @return bool:
*/
public function subscribe(string $queue,array $headers=[]):bool{ } /**
* 取消某个订阅
* @param string $queue
* @param array $headers
* @return bool
*/
public function unsubscribe(string $queue,array $headers=[]):bool { } /**
* 判断此队列是否还有消息
* @return bool
*/
public function hasFrame():bool{ } /**
* 读取下一条消息
* object(StompFrame)#2 (3) {
["command"]=>
string(7) "MESSAGE"
["headers"]=>
array(5) {
["message-id"]=>
string(41) "ID:php.net-55293-1257226743606-4:2:-1:1:1"
["destination"]=>
string(10) "/queue/foo"
["timestamp"]=>
string(13) "1257226805828"
["expires"]=>
string(1) "0"
["priority"]=>
string(1) "0"
}
["body"]=>
string(3) "bar"
}
*/
public function readFrame():StompFrame{ } /**
* 确认消息
* @param mixed $frame:消息帧
* @param array $headers:头,可不填
* @return bool:确认成功或者失败
*/
public function ack(mixed $frame, array $headers=[]):bool { } /**
* 开始事务
*
*
try {
$stomp = new Stomp('tcp://localhost:61613');
} catch(StompException $e) {
die('Connection failed: ' . $e->getMessage());
} //begin a transaction
$stomp->begin('t1'); //send a message to the queue
$stomp->send('/queue/foo', 'bar', array('transaction' => 't1')); // rollback
$stomp->abort('t1'); // close conection
unset($stomp);
?>
* @param string $transactionId:事务id,自己创建,保证唯一性
* @param array $headers
*/
public function begin(string $transactionId,array $headers=[]){ }
/**
* 提交事务
*
*
try {
$stomp = new Stomp('tcp://localhost:61613');
} catch(StompException $e) {
die('Connection failed: ' . $e->getMessage());
} //begin a transaction
$stomp->begin('t1'); //send a message to the queue
$stomp->send('/queue/foo', 'bar', array('transaction' => 't1')); // rollback
$stomp->commit('t1'); // close conection
unset($stomp);
?>
* @param string $transactionId:事务id,自己创建,保证唯一性
* @param array $headers
*/
public function commit(){ } /**
* 回滚事务
*
*
try {
$stomp = new Stomp('tcp://localhost:61613');
} catch(StompException $e) {
die('Connection failed: ' . $e->getMessage());
} //begin a transaction
$stomp->begin('t1'); //send a message to the queue
$stomp->send('/queue/foo', 'bar', array('transaction' => 't1')); // rollback
$stomp->abort('t1'); // close conection
unset($stomp);
?>
* @param string $transactionId:事务id,自己创建,保证唯一性
* @param array $headers
*/
public function abort(string $transactionId,array $headers=[]){ }
}
activemq stomp类的更多相关文章
- php 利用activeMq+stomp实现消息队列
php 利用activeMq+stomp实现消息队列 一.activeMq概述 ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线.ActiveMQ 是一个完全支持JMS1.1和J ...
- spring+rabbitmq+stomp搭建websocket消息推送(非spring boot方式)
前言: 两年前做过spring+activemq+stomp的ws推送,那个做起来很简单,但现在公司用的mq中间件是rabbitmq,因此需要通过rabbitmq去做ws通信.仔细搜了搜百度/谷歌,网 ...
- centos下的activemq的配置及PHP的使用
一.安装JDK 1.下载JDK(官网:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.ht ...
- ActiveMQ异步分发消息
org.apache.activemq.ActiveMQConnection 类中有个参数: protected boolean dispatchAsync=true; 这个参数的含义到底是什么? 使 ...
- ElasticSearch(九):springboot项目集成消息中间件activeMQ
目的:为了将elasticsearch做成单独的服务,那么我们必须解耦,也就是业务逻辑和搜索模块是没有关系的,并且是异步的.那么项目之间通信,使用的选择有限,消息中间件是一个不错的选择. 消息中间件常 ...
- activemq消息重发机制[转]
大家知道,JMS规范中,Message消息头接口中有setJMSRedelivered(boolean redelivered)和getJMSRedelivered()方法,用于设置和获取消息的重发标 ...
- Golang 实现UDPServer并发送消息到ActiveMQ
示例代码 package main import ( "net" "os" "github.com/gpmgo/gopm/modules/goconf ...
- Java类的继承与多态特性-入门笔记
相信对于继承和多态的概念性我就不在怎么解释啦!不管你是.Net还是Java面向对象编程都是比不缺少一堂课~~Net如此Java亦也有同样的思想成分包含其中. 继承,多态,封装是Java面向对象的3大特 ...
- metaq
MetaQ(全称Metamorphosis)是一个高性能.高可用.可扩展的分布式消息中间件,思路起源于LinkedIn的Kafka,但并不是Kafka的一个Copy.MetaQ具有消息存储顺序写.吞吐 ...
随机推荐
- 树莓派 nfs server安装
安装服务 sudo apt-get install portmap sudo apt-get install nfs-kernel-server 配置: sudo nano /etc/expo ...
- eclipse--常见问题
学习java的都知道这个编辑器,但这个编辑器的有很多功能很多人不知道怎么用,我系统的整理一下我学习过程中遇到的过的问题 1.eclipse如何导入external jar包? 参考:ht ...
- Python学习【02】Python基础
一.Python内部执行过程 1.Python的后缀名可以是任意? print("hello,world") 保存成 .py / .txt / .sb / .aaa 都可以用在 ...
- .net core2.1 配置
ASPNETCORE_ENVIRONMENT Development(开发)Staging(预演)Production(生产) var builder = new ConfigurationBuild ...
- 关于Chrome 67 以后版本无法离线安装扩展的解决方法
升级了Chrome,突然发现扩展管理页面有问题—— 无法离线安装扩展,拖拽crx文件至该页面,Chrome竟然一直提示“无法从该网站添加应用,扩展程序和用户脚本”. 如图: 谷歌自Chrome 67版 ...
- Javascript面向对象编程(二)
子承父业 该方法利用了call,apply,按照原有的方式进行复制,做一些改进,最后进行事务处理.废话不多说,直接看例子. 在这里我提一下,call和apply的异同:它们两个都可以改变this指向, ...
- PHP7.2中安装mcrypt扩展的问题
当前使用的是宝塔工具,PHP版本是7.2,据说只有7.1以下的版本才会默认安装了mcrypt功能. 所以的7.2的安装如下: yum install libmcrypt libmcrypt-devel ...
- 注意source folder与folder是不同的,避免404错误
在整合ssm框架的时候,程序和配置文件都没写错,tomcat也部署成功了,但在访问的时候一直404,web项目自带的index.jap却能正常访问,一直找不到原因,后来发现建立放配置文件的文件夹con ...
- 前端生成excel
一:安装依赖 1:在package.json 中加入四个依赖包 (1): "json2csv": "^3.11.0", (2):"file-saver ...
- session的处理机制
https://blog.csdn.net/deepwishly/article/details/6659613 https://blog.csdn.net/dz45693/article/detai ...