The documentation you are viewing is for Dapr v1.12 which is an older version of Dapr. For up-to-date documentation, see the latest version.
发布与订阅
使用 Dapr,您可以发布任何内容,包括 cloud event。 SDK 包含一个简单的 cloud event 实现,但您也可以只传递符合 cloud event 规范的数组或使用其他库。
<?php
$app->post('/publish', function(\DI\FactoryInterface $factory) {
// create a new publisher that publishes to my-pub-sub component
$publisher = $factory->make(\Dapr\PubSub\Publish::class, ['pubsub' => 'my-pubsub']);
// publish that something happened to my-topic
$publisher->topic('my-topic')->publish(['something' => 'happened']);
});
有关发布/订阅的详细信息,请查看操作方法。
数据内容类型
PHP SDK 允许在构建自定义 cloud event 或发布原始数据时设置数据内容类型。
<?php
$event = new \Dapr\PubSub\CloudEvent();
$event->data = $xml;
$event->data_content_type = 'application/xml';
<?php
/**
* @var \Dapr\PubSub\Publish $publisher
*/
$publisher->topic('my-topic')->publish($raw_data, content_type: 'application/octet-stream');
Binary data
Only <code>application/octet-steam</code> is supported for binary data.
接收 Cloud Event
在订阅处理器中,您可以通过 DI 容器将 dapr\PubSub\Cloud Event
或 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.