对于上下文: 我正在为扫雪机设置一个 PubSub 发射器。(对于其他读者,PubSub 是 Google Cloud Platforms 上的一个简单队列,它接收作为输入的数组消息)。
['data' => 'Name', 'attributes' => 'key pair values of whatever data you are sending']
以上是无关紧要的,除了我必须创建一个自定义的 Emitter 类来实现这个目标,因为 Google Cloud PubSub 有一些与扫雪机提供的典型的 http 请求/套接字/其他连接器不同的连接器。
实际问题:
我想为我发送的每个事件设置一个特定的模式。您如何将架构与每个有效负载相关联?
PHP Tracker SyncEmitter(提供的最标准的扫雪机发射器)不允许对模式进行任何自定义设置(如下所示)
private function getPostRequest($buffer) {
$data = array("schema" => self::POST_REQ_SCEHMA, "data" => $buffer);
return $data;
}
它被硬编码到跟踪的每个事件中。
于是我调查了一下。并进一步阅读扫雪机跟踪器。我仍然感到困惑,我知道我可以扩展 Payload 类并将我自己的模式强制作为变量,但为什么现在不是这样呢?我问是因为我假设开源程序员做对了,但我没有正确理解它。