发布订阅
使用 Dapr,你可以发布任何内容,包括云事件。SDK 包含一个简单的云事件实现,但你也可以直接传递一个符合云事件规范的数组,或者使用其他库。
<?php
$app->post('/publish', function(\Dapr\Client\DaprClient $daprClient) {
$daprClient->publishEvent(pubsubName: 'pubsub', topicName: 'my-topic', data: ['something' => 'happened']);
});
有关发布/订阅的更多信息,请查看操作指南。
数据内容类型
PHP SDK 允许在构造自定义云事件或发布原始数据时设置数据内容类型。
<?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>。
接收云事件
在你的订阅处理程序中,你可以让 DI 容器向你的控制器中注入 Dapr\PubSub\CloudEvent 或 array。前者会进行一些验证以确保你有一个正确的事件。如果你需要直接访问数据,或者事件不符合规范,请使用 array。