The documentation you are viewing is for Dapr v1.14 which is an older version of Dapr. For up-to-date documentation, see the latest version.
发布与订阅
使用 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');
Binary data
只有 <code>application/octet-steam</code> 支持二进制数据。
接收 Cloud Event
在您的订阅处理器中,您可以让 DI 容器将 Dapr\PubSub\CloudEvent 或 array 注入到您的控制器中。 前者会进行一些验证,以确保事件是正确的。 如果你需要直接访问数据,或者事件不符合规范,请使用array。
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.