略微加速

PHP官方手册 - 互联网笔记

PHP - Manual: Stomp::subscribe

2024-12-22

Stomp::subscribe

stomp_subscribe

(PECL stomp >= 0.1.0)

Stomp::subscribe -- stomp_subscribeRegisters to listen to a given destination

说明

面向对象风格 (method):

public Stomp::subscribe(string $destination, array $headers = ?): bool

过程化风格:

stomp_subscribe(resource $link, string $destination, array $headers = ?): bool

Registers to listen to a given destination.

参数

link

仅对过程化样式:由 stomp_connect() 返回的 stomp 连接标识符。

destination

Destination to subscribe to.

headers

关联数组包含附加的头信息(例如: receipt)。

返回值

成功时返回 true, 或者在失败时返回 false

范例

See stomp_ack().

注释

小技巧

Stomp is inherently asynchronous. Synchronous communication can be implemented adding a receipt header. This will cause methods to not return anything until the server has acknowledged receipt of the message or until read timeout was reached.

add a noteadd a note

User Contributed Notes 1 note

up
0
holycd
4 years ago
Using Topics from PHP over Stomp
$clientId = 'test:dev';
$topic  = '/topic/perm.user';

try {
    $stomp = new Stomp('tcp://localhost:61613','system','manager', array('client-id'=> $clientId ));
} catch(StompException $e) {
    die('Connection failed: ' . $e->getMessage());
}

$isSubscribe = $stomp->subscribe($topic);

while($isSubscribe){
    if ($stomp->hasFrame()) {
        $frame = $stomp->readFrame();
        if ($frame != NULL) {
            print "Received: " . $frame->body . " - time now is " . date("Y-m-d H:i:s"). "\n";
//            $stomp->ack($frame);
        }
//       sleep(1);
    }
    else {
        print "No frames to read\n";
    }
}
if($isSubscribe){
    $stomp->unsubscribe($topic);
    unset($stomp);
}

Can not receive the topic frame

官方地址:https://www.php.net/manual/en/stomp.subscribe.php

北京半月雨文化科技有限公司.版权所有 京ICP备12026184号-3