天天看點

阿裡雲Rocket MQ PHP Http SDK發送消息示例Demo

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、測試效果

阿裡雲Rocket MQ PHP Http SDK發送消息示例Demo

參考連結

PHP SDK 接入說明