Stomp::subscribe

stomp_subscribe

(PECL stomp >= 0.1.0)

Stomp::subscribe -- stomp_subscribe注册以监听给定目的地

描述

面向对象风格(方法)

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

过程式风格

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

注册以监听给定目的地。

参数

link

仅过程式风格:由 stomp_connect() 返回的 stomp 链接标识符。

destination

要订阅的目的地。

headers

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

返回值

成功时返回 true,失败时返回 false

示例

参见 stomp_ack()

备注

提示

Stomp 本质上是异步的。同步通信可以通过添加 receipt 头来实现。这将导致方法在服务器确认收到消息之前或读取超时到达之前不会返回任何内容。

添加备注

用户贡献的备注 1 备注

-1
holycd
7 年前
通过 Stomp 使用 PHP 的主题
$clientId = 'test:dev';
$topic = '/topic/perm.user';

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

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

while($isSubscribe){
if ($stomp->hasFrame()) {
$frame = $stomp->readFrame();
if ($frame != NULL) {
print "已接收: " . $frame->body . " - 当前时间是 " . date("Y-m-d H:i:s"). "\n";
// $stomp->ack($frame);
}
// sleep(1);
}
else {
print "没有帧可读取\n";
}
}
if($isSubscribe){
$stomp->unsubscribe($topic);
unset($stomp);
}

无法接收主题帧
To Top