当前位置:首页 > PHP

php 实现 activemq

2026-02-14 12:07:21PHP

使用 PHP 实现 ActiveMQ 通信

安装 Stomp 扩展

ActiveMQ 支持 STOMP 协议,PHP 可以通过 STomp 扩展与 ActiveMQ 通信。确保安装并启用 PHP 的 Stomp 扩展。

pecl install stomp

php.ini 中添加:

extension=stomp.so

连接到 ActiveMQ

使用 Stomp 客户端连接到 ActiveMQ 服务器。默认情况下,ActiveMQ 的 STOMP 端口为 61613。

$connection = new Stomp('tcp://localhost:61613');
$connection->connect();

发送消息到队列

发送消息到指定的队列或主题。以下示例发送消息到名为 test_queue 的队列。

php 实现 activemq

$message = 'Hello, ActiveMQ!';
$connection->send('/queue/test_queue', $message);
echo "Message sent: $message\n";

订阅队列并接收消息

订阅队列并监听消息。以下示例监听 test_queue 队列并打印接收到的消息。

$connection->subscribe('/queue/test_queue');
while (true) {
    if ($connection->hasFrame()) {
        $frame = $connection->readFrame();
        if ($frame != null) {
            echo "Received: " . $frame->body . "\n";
            $connection->ack($frame);
        }
    }
}

关闭连接

完成通信后,关闭连接以释放资源。

php 实现 activemq

$connection->disconnect();

使用事务

如果需要确保消息的可靠性,可以使用事务发送消息。

$connection->begin();
$connection->send('/queue/test_queue', 'Transactional message');
$connection->commit();

错误处理

捕获并处理可能的异常,确保程序健壮性。

try {
    $connection = new Stomp('tcp://localhost:61613');
    $connection->connect();
    $connection->send('/queue/test_queue', 'Test message');
} catch (StompException $e) {
    echo "Error: " . $e->getMessage();
}

完整示例

以下是一个完整的发送和接收消息的示例。

<?php
try {
    // 连接
    $connection = new Stomp('tcp://localhost:61613');
    $connection->connect();

    // 发送
    $connection->send('/queue/test_queue', 'Hello, ActiveMQ!');

    // 接收
    $connection->subscribe('/queue/test_queue');
    while (true) {
        if ($connection->hasFrame()) {
            $frame = $connection->readFrame();
            if ($frame != null) {
                echo "Received: " . $frame->body . "\n";
                $connection->ack($frame);
                break;
            }
        }
    }

    // 关闭
    $connection->disconnect();
} catch (StompException $e) {
    echo "Error: " . $e->getMessage();
}
?>

注意事项

  • 确保 ActiveMQ 服务器已启动并启用 STOMP 协议。
  • 消息确认(ACK)是必要的,避免消息重复处理。
  • 生产环境中建议使用更高级的消息处理模式(如持久化订阅)。

标签: phpactivemq
分享给朋友:

相关文章

php实现购物车

php实现购物车

PHP实现购物车功能 购物车功能是电商网站的核心模块之一,通常涉及商品添加、删除、数量修改和结算等操作。以下是使用PHP实现购物车功能的几种方法。 使用Session存储购物车数据 Session是…

php实现登录

php实现登录

PHP 登录功能实现 数据库连接与用户表创建 创建一个数据库连接文件 db.php,用于管理数据库连接。MySQL 示例代码如下: <?php $host = 'localhost'; $db…

php实现排序

php实现排序

PHP 数组排序方法 PHP 提供了多种内置函数用于数组排序,适用于不同的排序需求。以下是常见的排序方法: 按值升序排序 sort() 函数对数组按值升序排序,重置键名(索引数组适用): $num…

php实现上传图片

php实现上传图片

上传图片的基本流程 PHP 实现图片上传功能需要处理文件接收、验证、保存等步骤。以下是具体实现方法。 创建 HTML 表单 在 HTML 中创建一个表单,设置 enctype="multipart/…

php实现静态

php实现静态

静态化实现方法 PHP实现静态化主要通过生成HTML文件或缓存机制来减少服务器动态解析的开销。以下是几种常见方法: 生成静态HTML文件 通过file_put_contents()将动态内容保存为H…

php实现文章

php实现文章

PHP实现文章管理功能 在PHP中实现文章管理功能通常涉及数据库操作、表单处理和页面展示。以下是实现文章管理的基本步骤: 数据库设计 创建articles表,包含字段如id、title、conten…