阿里云Rocket MQ PHP Http SDK发送消息示例Demo-阿里云开发者社区

开发者社区> 云服务技术课堂> 正文

阿里云Rocket MQ PHP Http SDK发送消息示例Demo

简介: 消息队列 RocketMQ 版支持 RESTful 风格的 HTTP 协议通信,并提供了以下 7 种语言的 SDK,下面以最新的PHP Http SDK为范例介绍RocketMQ消息的发送。

Step By Step

1、SDK安装:composer.json

{
  "require": {
     "aliyunmq/mq-http-sdk": ">=1.0.1"
  }
}

2、install requires

composer install

3、认证参数获取

参考:阿里云Rocket MQ Java Http SDK发送消费消息示例Demo 参数获取部分

4、Send Code Sample

<?php
require "vendor/autoload.php";

use MQ\Model\TopicMessage;
use MQ\MQClient;

class ProducerTest
{
    private $client;
    private $producer;
    
    public function __construct()
    {
        $this->client = new MQClient(
            // 设置HTTP接入域名(此处以公共云生产环境为例)
            "http://1848217816617278.mqrest.cn-qingdao.aliyuncs.com",
            // AccessKey 阿里云身份验证,在阿里云服务器管理控制台创建
            "LTAIOZ**********",
            // SecretKey 阿里云身份验证,在阿里云服务器管理控制台创建
            "v7CjUJCMk7j9aK****************"
            );
        
        // 所属的 Topic
        $topic = "******";
        // Topic所属实例ID,默认实例为空NULL
        $instanceId = "MQ_INST_18482178********";
        
        $this->producer = $this->client->getProducer($instanceId, $topic);
    }
    
    public function run()
    {
        try
        {
            for ($i=1; $i<=4; $i++)
            {
                $publishMessage = new TopicMessage(
                    "this is test message"// 消息内容
                    );
                // 设置属性
                $publishMessage->putProperty("a", $i);
                // 设置消息KEY
                $publishMessage->setMessageKey("MessageKey");
                if ($i % 2 == 0) {
                    // 定时消息, 定时时间为10s后
                    $publishMessage->setStartDeliverTime(time() * 1000 + 10 * 1000);
                }
                $result = $this->producer->publishMessage($publishMessage);
                
                print "Send mq message success. msgId is:" . $result->getMessageId() . ", bodyMD5 is:" . $result->getMessageBodyMD5() . "\r\n";
                
                // 设置换行
                echo "<br>";
            }
        } catch (\Exception $e) {
            print_r($e->getMessage() . "\n");
        }
    }
}

$instance = new ProducerTest();
$instance->run();
?>

5、测试效果
图片.png

参考链接

PHP SDK 接入说明

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:

云服务技术课堂,各类技术课程、最佳实践输出,来好好听课吧!

官方博客