Phoenix.Socket.V2.BERTSerializer (phoenix_socket_bert v1.0.5)
View SourceA serializer for Phoenix.Socket
that encodes messages using BERT (Binary ERlang Term)
Fallback to Phoenix.Socket.V2.JSONSerializer for decoding messages that are not BERT encoded
Usage
Set the :serializer
option in your Phoenix.Socket
configuration:
endpoint.ex
socket "/live", Phoenix.LiveView.Socket,
longpoll: [connect_info: [session: @session_options]],
websocket: [
connect_info: [session: @session_options],
serializer: [{Phoenix.Socket.V2.BERTSerializer, "~> 2.0.0"}]
]
socket "/socket", Phoenix.Socket,
websocket: [
serializer: [{Phoenix.Socket.V2.BERTSerializer, "~> 2.0.0"}]
]
Import the phoenix_socket_bert
in your app.js and add decode
option to the LiveSocket
configuration:
app.js
import { decode } from 'phoenix_socket_bert'
import { LiveSocket } from 'phoenix_live_view'
import { Socket } from 'phoenix'
let csrfToken = document.querySelector('meta[name="csrf-token"]').getAttribute('content')
let liveSocket = new LiveSocket('/live', Socket, {
decode: decode,
longPollFallbackMs: 2500,
params: { _csrf_token: csrfToken }
})
liveSocket.connect()
let socket = new Socket("/socket", { decode: decode, params: { token: csrfToken } })
socket.connect()