[erlang-questions] Multiple websocket subscribers to Kafka topic using Cowboy and Brod

Grigory Fateyev gfborn@REDACTED
Fri Nov 16 14:57:51 CET 2018


Hello, Noah!

I'm not sure about brod, but I think the first arg of brod:subscribe/5 [1]
should be dynamic and a unique per client. It can be username or user id.


[1]: https://github.com/klarna/brod/blob/master/src/brod.erl#L602

пт, 16 нояб. 2018 г. в 16:41, Noah Silverman <noah@REDACTED>:

> Hi,
>
> I'm building an application where people can use websocket connections to
> receive streaming data from Kafka topics.
>
> Currently, I use Cowboy 2.5 to manage the websockets.  It works great!
>
> However, I can only have ONE websocket subscribe to a Kafka topic using
> brod.  When The second person connects and subscribes, brod returns an
> error: {error,{already_subscribed_by,<0.1374.0>}}
>
> In the Cowboy websocket handler, I handle subscription requests with a
> simple brod subscribe call:
> brod:subscribe(api_brod_client, self(), Topic, 0, [])
>
>
> Perhaps that's not the optimal way.
>
> I did read that brod has a higher level call:
> brod_topic_subscriber:start_link.  However, that wants a module it can
> callback with an init.  Since there is already a websocket process running
> from Cowboy, I don't want broad to start it again.
>
> does anybody know of a simple way to have each websocket process just
> subscribe to the Kafka topic.  The brod_topic_subscriber might work, if
> there is a way to just feed the mssages back to the cowboy process calling
> it.
>
> Thoughts?
>
> --
> Noah
>
>
>
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20181116/d6b2dda4/attachment.htm>


More information about the erlang-questions mailing list