Use Phoenix to parse content on external websocket

Hi People,

Does anybody has an idea how to use the phoenixframework to consume content(events) from a websocket.

I have a websocket I can connect to with for example wscat. The content is Json and should be parsed and logged in a DB.
The Phoenix app should use this content to update state’s of object.

I also need a way to initialise and make sure websocket is connected to not mis out on important information about state changes of objects etc.

Thanks for any directions

1 Like
  • Phoenix uses web sockets to implement channels. The server side and client side code implements the necessary protocols that makes Phoenix channels work. Phoenix isn’t a framework to work with other protocols implemented over web sockets.

Strictly speaking the “Phoenix app” is entirely on the server side and in Elixir there are no objects. Phoenix does provide some JavaScript files to make it easier to work with the Phoenix channel protocol in the browser.

So if you are trying to consume a non-Phoenix web socket in the browser then you’ll have to use a separate JavaScript library or implement the necessary protocols yourself (e.g.
Writing WebSocket client applications.)

But there are also libraries that let you access web sockets from Elixir if that is what you need.

As i am a newby my question might be totally of… :slight_smile:

What I need to do is let Phoenix (server side) connect to the websocket that send JSON encoded data and parse this.
Then serverside things will get logged and maybe there will be a certain procedure followed based on the JSON content.

Client Side should not see or parse these data. So ideally there is just one serverside process dealing with this incoming data and multiple browser session eventually consuming these serverside processed data.

FYI i did found the WebSockeX module, not really sure yet how to use this in Phoenix (other then addind it to the mix.deps file and running mix.deps get & compile)

Documentation is available at https://hexdocs.pm/websockex/readme.html

Using it inside phoenix shouldn’t be different than using it without, its just a client library.

2 Likes