YoungFlannagan
Heroku Deployed Elm/Phoenix App Websocket Issue
Hi all,
I deployed my elm embedded phoenix application to heroku and it compiled successfully. The issue I am having is the websocket connection no longer works. I am using the elm-phoenix-socket package, and figured all I had to do was change the socket init url from “ws://localhost:4000/socket/websocket” to “wss://my-app.herokuapp.com/socket/websocket” I have tried a couple other urls to no avail.
Not sure what to try. Any help would be appreciated.
Most Liked
apoeco
Can you try wss://my-app.herokuapp.com/socket instead?
I am not sure if this will work but the default url defined in the Endpoint module is "/socket" ..
OvermindDL1
Last Post!
domvas
I’ve had a hard time with it too.
And I managed to tackle in non-so-satisfying way.
In my controller, I have this:
socket_prefix = get_socket_prefix(Application.get_env(:vinculi_web, :env))
socket_host = get_socket_host(conn, Application.get_env(:vinculi_web, :env))
socket_url = socket_prefix <> "://#{socket_host}" <> "/socket/websocket"
render conn, "explore.html", layout: {VinculiWeb.LayoutView, "app_light.html"},
node_uuid: node_uuid,
node_labels: node_labels,
server_url: server_url,
socket_url: socket_url
with the following helpers:
def get_socket_prefix(:prod), do: "wss"
def get_socket_prefix(_), do: "ws"
def get_socket_host(conn, :prod), do: conn.host
def get_socket_host(conn, _), do: "#{conn.host}:#{conn.port}"
And I didn’t add any check_origin.
Again, this is not an elegant solution but it works (for me, at least) and don’t require tricks before pushing to production.
Hope it helps.
Trending in Questions
Other Trending Topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #elixirconf-us
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #metaprogramming
- #security
- #hex









