Phoenix channel subscription timeout


I started building an app that uses Phoenix channels and was wondering what’s the right (or the most appropriate) way to maintain channel subscription. By default, channel subscription is closed after 60 seconds. I’m not using the built-in phoenix.js library - instead, it’s a native browser websocket API.

I found one pretty old example where pings are being sent by the server after the client “joins” the channel. However, as far as I understand, the way “keepalive” is handled right now (new-ish versions of Phoenix) is by resubscribing to the channel that sent the “close” event. Is this correct? If so, is that the appropriate way to handle it if I’m not using the standard phoenix.js library?


1 Like

Channels are a higher level above websockets, it has a heartbeat and a specific format. If you want to use raw websockets you should just use a cowboy websocket with phoenix instead of channels. :slight_smile:

If you really want to use the channel API then you’ll basically be recreating the phoenix.js library, so should just use it. :slight_smile:

1 Like

Thanks for explanation!

It makes sense now - I’m not the one working on the front-end portion (it’s a separate app that consumes my backend API), so I wasn’t sure how to interact with my API using non-phoenix.js front-end. Now all’s clear :slight_smile:

1 Like