PHP SDK
最近更新时间: 2025-10-11 18:10:00
操作场景
本文以 PHP 语言为例介绍通过 HTTP 协议接入 TDMQ Pulsar 版并收发消息的操作方法。
前提条件
操作步骤
- 准备环境。
- 添加依赖。
composer require tencentcloud/tencentcloud-sdk-php
- 添加引用。
require '/path/to/vendor/autoload.php';
说明:
详细信息可参见 PHP SDK 3.0安装使用。
- 创建 TDMQ 客户端。
// 认证信息
$cred = new Credential($secretId, $secretKey);
$httpProfile = new HttpProfile();
$httpProfile->setEndpoint($endpoint);
$clientProfile = new ClientProfile();
$clientProfile->setHttpProfile($httpProfile);
// 创建tdmq客户端
$client = new TdmqClient($cred, $region, $clientProfile);
| 参数 | 说明 |
|---|---|
| $secretId、$secretKey | 云 API 密钥,登录 访问管理控制台,在访问密钥 > API 密钥管理页面复制。 ![]() |
| $endpoint | 接口请求域名: tdmq.tencentcloudapi.com |
| $region | 集群所属地域,详见产品支持的 地域列表。 |
- 发送消息。
$req = new SendMessagesRequest();
$params = array(
// 已授权角色密钥
"StringToken" => $token,
// topic全称, 格式为: 集群(租户)ID/命名空间/Topic名称
"Topic" => $fullTopicName,
// 消息内容
"Payload" => "this is a new message.",
// 已授权角色名称
"ProducerName" => $userName,
// 发送消息超时时间
"SendTimeout" => 3000A
);
$req->fromJsonString(json_encode($params));
// 发送消息
$resp = $client->SendMessages($req);
| 参数 | 说明 |
|---|---|
| $token | 角色密钥,在 角色管理 页面复制密钥列复制。![]() |
| $userName | 角色名称,在 角色管理 页面复制名称列复制。 |
| $fullTopicName | Topic 名称,格式为:集群(租户)ID/命名空间/Topic名称,示例:pulsar-xxx/sdk_http/topic1。可以从控制台上Topic 管理页面直接复制。 |
- 消费消息。
$req = new ReceiveMessageRequest();
$params = array(
// topic全称, 格式为: 集群(租户)ID/命名空间/Topic名称
"Topic" => $fullTopicName,
// 订阅名称
"SubscriptionName" => $subName,
// consumer接收的消息会首先存储到receiverQueueSize这个队列中,用作调优接收消息的速率
"ReceiverQueueSize" => 10,
// 设置consumer初始接收消息的位置,可选参数为:Earliest, Latest
"SubInitialPosition" => "Latest"
);
$req->fromJsonString(json_encode($params));
// 接收消息
$resp = $client->ReceiveMessage($req);
| 参数 | 说明 |
|---|---|
| $fullTopicName | Topic 名称,格式为:集群(租户)ID/命名空间/Topic名称,示例:pulsar-xxx/sdk_http/topic1。可以从控制台上 Topic 管理 页面直接复制。 |
| $subName | 订阅名称,可在控制台集群管理 > 消费者 tab 页面复制。 |
- 确认消息。
$req = new AcknowledgeMessageRequest();
$params = array(
// 带确认消息id
"MessageId" => $messageId,
// topic全称, 格式为: 集群(租户)ID/命名空间/Topic名称
"AckTopic" => $fullTopicName,
// 订阅名称
"SubName" => $subName
);
$req->fromJsonString(json_encode($params));
// 确认消息
$resp = $client->AcknowledgeMessage($req);
| 参数 | 说明 |
|---|---|
| $messageId | 消费消息获取导的消息 ID。 |
| $fullTopicName | Topic 名称,格式为:集群(租户)ID/命名空间/Topic名称,示例:pulsar-xxx/sdk_http/topic1。可以从控制台上 Topic 管理 页面直接复制。 |
| $subName | 订阅名称,可在控制台集群管理 > 消费者 tab 页面复制。 |
说明:
上述是对消息收发操作的简单介绍,完整实例可参见 Demo 或 云API Explorer。

