NFIBrokerage / slipstream

A slick WebSocket client for Phoenix Channels
https://hex.pm/packages/slipstream
Apache License 2.0
160 stars 18 forks source link

Phoenix Socket without Channels #51

Closed aleDsz closed 2 years ago

aleDsz commented 2 years ago

Hi, first of all, nice work y'all <3

I've been testing Mint.WebSocket to create integrate a WebSocket client into our project but I couldn't use Slipstream very well.

So, I have a question, does Slipstream works with Sockets wihtout the Channel API? Only sending and receiving messages from the WebSocket? I could do it with Mint.WebSocket, but I still want to try with Slipstream, since your API is much more simple to develop with.

I'm asking just to make sure before doing anything here.

the-mikedavis commented 2 years ago

Hello and thanks!

Phoenix Channels add an extra layer of protocol on top of WebSocket - there's some extra JSON-based framing and some concepts like topics and replies that don't exist in WebSocket. Slipstream is designed to close over those details so it can't be used directly as a WebSocket client alone.

A Mint.WebSocket based WebSocket client with a high-level API would be really cool though - it would be a nice pure-Elixir alternative to :gun or :websocket_client, like Finch (https://github.com/sneako/finch) but for WebSockets.