basis-company / nats.php

nats jetstream client for php
116 stars 29 forks source link

[question] filtering consumers by subjects #51

Closed kuudr closed 8 months ago

kuudr commented 8 months ago

Hello!

i have a question

Which correct way to filter subject while i create consumer ? Method setSubjectFilter() at \Basis\Nats\Consumer\Configuration class does not produce any result.

Here is my code example:

    /**
     * @throws \Throwable
     */
    public function __invoke(): void
    {
        $myStreamName = 'some_stream';

        $stream = $this->client->getApi()->getStream($myStreamName);

        $configuration = (new ConsumerConfiguration($myStreamName))
            ->setDeliverPolicy(DeliverPolicy::NEW)
            ->setSubjectFilter('some_subject');

        $ephemeralConsumer = $stream->createEphemeralConsumer($configuration);

        $ephemeralConsumer->handle(function ($some) {
            dump($some);
        });
    }

In this example i expect that API request to NATS will look like $JS.API.CONSUMER.CREATE.some_stream.some_subject, but i get API request to $JS.API.CONSUMER.CREATE.some_stream only, and as a result i recieve an authorization error