Phoenix.Transports.WebSocket
Handles WebSocket clients for the Channel Transport layer
Configuration
By default, JSON encoding is used to broker messages to and from clients, but the serializer is configurable via the Endpoint’s transport configuration:
config :my_app, MyApp.Endpoint, transports: [
websocket_serializer: MySerializer
]
The websocket_serializer
module needs only to implement the encode!/1
and
decode!/2
functions defined by the Phoenix.Transports.Serializer
behaviour.
Websockets, by default, do not timeout if the connection is lost. To set a maximum timeout duration in milliseconds, add this to your Endpoint’s transport configuration:
config :my_app, MyApp.Endpoint, transports: [
websocket_timeout: 60000
]
Summary↑
action(conn, options) | |
call(conn, action) | Callback implementation of |
init(action) | Callback implementation of |
upgrade(conn, ) | |
ws_handle(opcode, payload, state) | Receives JSON encoded |
ws_hibernate(state) | |
ws_info(arg1, state) | Receives |
ws_init(conn) | Handles initalization of the websocket |
ws_terminate(reason, arg2) | Called on WS close. Dispatches the |
Functions
Callback implementation of Plug.call/2
.
Callback implementation of Plug.init/1
.
Receives JSON encoded %Phoenix.Socket.Message{}
from client and dispatches
to Transport layer
Receives %Phoenix.Socket.Message{}
and sends encoded message JSON to client
Handles initalization of the websocket
Called on WS close. Dispatches the leave
event back through Transport layer