发布与订阅

使用 Dapr,您可以发布任何内容,包括 cloud events。 SDK 包含一个简单的 cloud event 实现,但您也可以只传递符合 cloud event 规范的数组或使用其他库。

<?php
$app->post('/publish', function(\Dapr\Client\DaprClient $daprClient) {
    $daprClient->publishEvent(pubsubName: 'pubsub', topicName: 'my-topic', data: ['something' => 'happened']);
});

有关发布/订阅的更多信息,请查看 操作方法

数据内容类型

PHP SDK 允许在构建自定义 cloud event 或发布原始数据时设置数据内容类型。


<?php
$event = new \Dapr\PubSub\CloudEvent();
$event->data = $xml;
$event->data_content_type = 'application/xml';

<?php
/**
 * @var \Dapr\Client\DaprClient $daprClient 
 */
$daprClient->publishEvent(pubsubName: 'pubsub', topicName: 'my-topic', data: $raw_data, contentType: 'application/octet-stream');

接收 Cloud Event

在您的订阅处理器中,您可以让 DI 容器将 Dapr\PubSub\CloudEventarray 注入到您的控制器中。 前者会进行一些验证,以确保事件是正确的。 如果你需要直接访问数据,或者事件不符合规范,请使用array