Phoenix.Socket

A socket declares to which endpoint a socket connection should be established.

Definition

type alias Socket = PhoenixSocket

Representation of a Socket connection

Helpers

init : String -> Socket

Initialize a Socket connection with an endpoint.

init "ws://localhost:4000/socket/websocket"
withParams : List (String, String) -> Socket -> Socket

Attach parameters to the socket connecton. You can use this to do authentication on the socket level. This will be the first argument (as a map) in your connect/2 callback on the server.

init "ws://localhost:4000/socket/websocket"
    |> withParams [("token", "GYMXZwXzKFzfxyGntVkYt7uAJnscVnFJ")]

The client regularly sends a heartbeat to the server. With this function you can specify the intervall in which the heartbeats are send. By default it_s 30 seconds.

init "ws://localhost:4000/socket/websocket"
    |> heartbeatIntervallSeconds 60

The client regularly sends a heartbeat to the sever. With this function you can disable the heartbeat.

init "ws://localhost:4000/socket/websocket"
    |> withoutHeartbeat
reconnectTimer : (Int -> Time) -> Socket -> Socket

The effect manager will try to establish a socket connection. If it fails it will try again with a specified backoff. By default the effect manager will use the following exponential backoff strategy:

defaultReconnectTimer failedAttempts =
    if backoff < 1 then
        0
    else
        toFloat (10 * 2 ^ failedAttempts)

With this function you can specify a custom strategy.

Enable debug logs for the socket. Every incoming and outgoing message will be printed.

map : (a -> b) -> Socket a -> Socket b

Composes each callback with the function a -> b.