I follow this article to add my serializer, seems not correct add the line
serializer: [{GMessage.Serializer.Raw, “~> 1.0.0”}] to channels/user_socket.ex
already googled and search the forum, can not find answer.
setting-up-phoenix-channels-to-use-messagepack-for-serialization
here is my channels/user_socket.ex
defmodule MyApp.UserSocket do
use Phoenix.Socket
## Channels
channel "message:*", MyAppWeb.DmessageChannel
serializer: [{MyApp.Serializer.Raw, "~> 1.0.0"}]
@impl true
def connect(_params, socket, _connect_info) do
{:ok, socket}
end
@impl true
def id(_socket), do: nil
end
here is the serializer from @ hauleth
defmodule MyApp.Serializer.Raw do
@behaviour Phoenix.Socket.Serializer
def decode!(iodata, _options) do
%Phoenix.Socket.Message{payload: List.to_string(iodata)}
end
def encode!(%{payload: data}) do
{:socket_push, :binary, data}
end
def fastlane!(%{payload: data}), do: {:socket_push, :binary, data}
end