English | 简体中文 | 繁體中文
查询

Stomp::subscribe()函数—用法及示例

「 订阅一个目标的消息 」


函数名称:Stomp::subscribe()

函数描述:该函数用于订阅一个目标的消息。

适用版本:PHP 5 >= 5.3.0, PHP 7, PECL stomp >= 0.1.0

语法:bool Stomp::subscribe ( string $destination [, array $headers ] )

参数:

  • destination:订阅的目标,可以是队列或主题的名称。
  • headers(可选):订阅的头信息,以关联数组的形式提供。

返回值:

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

示例:

// 创建一个新的 Stomp 对象
$stomp = new Stomp('tcp://localhost:61613');

// 连接到消息代理
if ($stomp->connect()) {
    // 订阅一个队列
    $destination = '/queue/myqueue';
    $headers = array('selector' => 'color = "blue"');
    $stomp->subscribe($destination, $headers);

    // 接收消息
    while (true) {
        $frame = $stomp->readFrame();
        if ($frame) {
            echo "Received message: " . $frame->body . "\n";
            $stomp->ack($frame);
        }
    }

    // 断开连接
    $stomp->disconnect();
} else {
    echo "连接失败\n";
}

在上面的示例中,我们首先创建了一个新的 Stomp 对象,并使用指定的消息代理地址进行了连接。然后,我们使用 subscribe() 函数订阅了一个名为 /queue/myqueue 的队列,并传递了一个选择器头信息,只接收颜色为蓝色的消息。接下来,我们使用一个无限循环来接收消息,并通过 readFrame() 函数读取消息帧。如果成功读取到消息帧,则打印消息内容,并使用 ack() 函数确认接收到的消息。最后,我们使用 disconnect() 函数断开与消息代理的连接。

请注意,示例中的参数和头信息仅作为示例,您可以根据实际需求进行调整。

补充纠错
上一个函数: Stomp::unsubscribe()函数
下一个函数: Stomp::setReadTimeout()函数
热门PHP函数
分享链接