activemq stomp类

Posted diguaer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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类的主要内容,如果未能解决你的问题,请参考以下文章

ActiveMq获取topic数据

ActiveMQ + NodeJS + Stomp 极简入门

ActiveMQ 无法识别 Stomp:传输方案无法识别:[stomp+ssl]

ActiveMQ、STOMP、Java 示例

如何将事务与 Stomp 和 ActiveMQ(和 Perl)一起使用?

无法使用 STOMP 向 activemq 发送消息