Pushest v0.2.2 Pushest.Socket.Data.Frame View Source

Structure representing a Frame being passed between Pushest and Pusher server. Includes methods constructing Frame structure for various pusher events. This module handles encode/decode actions for a Frame.

Link to this section Summary

Functions

Decodes frame from stringified JSON to Frame struct

Encodes Frame struct to stringified JSON

Returns Frame struct representing an event being sent to the Pusher

Returns Frame struct representing subscribe event being sent to the Pusher

Returns Frame struct representing unsubscribe event being sent to the Pusher

Link to this section Functions

Link to this function decode!(raw_frame) View Source
decode!(String.t()) :: %Pushest.Socket.Data.Frame{
  channel: term(),
  data: term(),
  event: term()
}

Decodes frame from stringified JSON to Frame struct.

Examples

iex> Pushest.Socket.Data.Frame.decode!("{\"event\":\"first-event\",\"data\":null,\"channel\":\"public-channel\"}")
%Pushest.Socket.Data.Frame{channel: "public-channel", event: "first-event"}

iex> Pushest.Socket.Data.Frame.decode!("{\"event\":\"first-event\",\"data\":{\"test\":1},\"channel\":\"public-channel\"}")
%Pushest.Socket.Data.Frame{channel: "public-channel", event: "first-event", data: %{"test" => 1}}
Link to this function encode!(frame) View Source
encode!(%Pushest.Socket.Data.Frame{channel: term(), data: term(), event: term()}) ::
  String.t()

Encodes Frame struct to stringified JSON.

Examples

iex> Pushest.Socket.Data.Frame.encode!(%Pushest.Socket.Data.Frame{
...> channel: "public-channel", event: "first-event"
...> })
"{\"event\":\"first-event\",\"data\":null,\"channel\":\"public-channel\"}"

iex> Pushest.Socket.Data.Frame.encode!(%Pushest.Socket.Data.Frame{
...> channel: "public-channel",
...> event: "first-event",
...> data: %{name: "stepnivlk"}
...> })
"{\"event\":\"first-event\",\"data\":{\"name\":\"stepnivlk\"},\"channel\":\"public-channel\"}"
Link to this function event(channel, event, data) View Source
event(String.t(), String.t(), term()) :: %Pushest.Socket.Data.Frame{
  channel: term(),
  data: term(),
  event: term()
}

Returns Frame struct representing an event being sent to the Pusher.

Examples

iex> Pushest.Socket.Data.Frame.event("private-chnl", "evnt", %{name: "stepnivlk"})
%Pushest.Socket.Data.Frame{
  channel: "private-chnl",
  data: %{name: "stepnivlk"},
  event: "client-evnt"
}
Link to this function subscribe(channel, auth, user_data \\ %{}) View Source
subscribe(String.t(), String.t() | nil, map()) :: %Pushest.Socket.Data.Frame{
  channel: term(),
  data: term(),
  event: term()
}

Returns Frame struct representing subscribe event being sent to the Pusher.

Examples

iex> Pushest.Socket.Data.Frame.subscribe("private-chnl", "auth")
%Pushest.Socket.Data.Frame{
  event: "pusher:subscribe",
  data: %Pushest.Socket.Data.SubscriptionData{
    auth: "auth",
    channel: "private-chnl",
    channel_data: %{}
  },
  channel: nil
}

iex> Pushest.Socket.Data.Frame.subscribe("private-chnl", "auth", %{user_id: 1})
%Pushest.Socket.Data.Frame{
  event: "pusher:subscribe",
  data: %Pushest.Socket.Data.SubscriptionData{
    auth: "auth",
    channel: "private-chnl",
    channel_data: %{user_id: 1}
  },
  channel: nil
}
Link to this function unsubscribe(channel) View Source
unsubscribe(String.t()) :: %Pushest.Socket.Data.Frame{
  channel: term(),
  data: term(),
  event: term()
}

Returns Frame struct representing unsubscribe event being sent to the Pusher.

Examples

iex> Pushest.Socket.Data.Frame.unsubscribe("private-chnl")
%Pushest.Socket.Data.Frame{
  event: "pusher:unsubscribe",
  data: %Pushest.Socket.Data.SubscriptionData{channel: "private-chnl"}
}