Search documentation of Phoenix

# Phoenix.Socket.Serializer behaviour (Phoenix v1.8.7)

View Source

A behaviour that serializes incoming and outgoing socket messages.

By default Phoenix provides a serializer that encodes to JSON and decodes JSON messages.

Custom serializers may be configured in the socket.

## Summary

### Callbacks

decode!(iodata, options)

Decodes iodata into `Phoenix.Socket.Message` struct.

encode!(arg1)

Encodes `Phoenix.Socket.Message` and `Phoenix.Socket.Reply` structs to push format.

fastlane!(t)

Encodes a `Phoenix.Socket.Broadcast` struct to fastlane format.

## Callbacks

# decode!(iodata, options)

    @callback decode!(iodata(), options :: Keyword.t()) :: Phoenix.Socket.Message.t()

Decodes iodata into `Phoenix.Socket.Message` struct.

# encode!(arg1)

    @callback encode!(Phoenix.Socket.Message.t() | Phoenix.Socket.Reply.t()) ::
      {:socket_push, :text, iodata()} | {:socket_push, :binary, iodata()}

Encodes `Phoenix.Socket.Message` and `Phoenix.Socket.Reply` structs to push format.

# fastlane!(t)

    @callback fastlane!(Phoenix.Socket.Broadcast.t()) ::
      {:socket_push, :text, iodata()} | {:socket_push, :binary, iodata()}

Encodes a `Phoenix.Socket.Broadcast` struct to fastlane format.