使用 PHP 发布和订阅

使用方式

有了 Dapr,您可以发布包括云事件的任何内容, 有了 Dapr,您可以发布包括云事件的任何内容, SDK包含一个简单的云事件实现,但是 您也可以只传递一个符合云事件规范的数组,或者使用另一个库。

  1. <?php
  2. $app->post('/publish', function(\DI\FactoryInterface $factory) {
  3. // create a new publisher that publishes to my-pub-sub component
  4. $publisher = $factory->make(\Dapr\PubSub\Publish::class, ['pubsub' => 'my-pubsub']);
  5. // publish that something happened to my-topic
  6. $publisher->topic('my-topic')->publish(['something' => 'happened']);
  7. });

For more information about publish/subscribe, check out the howto.

数据内容类型

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

  1. <?php
  2. $event = new \Dapr\PubSub\CloudEvent();
  3. $event->data = $xml;
  4. $event->data_content_type = 'application/xml';
  1. <?php
  2. /**
  3. * @var \Dapr\PubSub\Publish $publisher
  4. */
  5. $publisher->topic('my-topic')->publish($raw_data, content_type: 'application/octet-stream');

Binary data

  1. Only <code>application/octet-steam</code> is supported for binary data.

接收云事件

在订阅处理器中,您可以通过 DI 容器将 dapr\PubSub\Cloud Event 或 <code>array 注入到控制器中。 之前进行了一些验证以确保您有一个适当的事件。 如果您需要直接访问数据或者事件,请使用 array </ code>。