Current section
Files
Jump to
Current section
Files
lib/pixie/responses/subscribe.ex
defmodule Pixie.Response.Subscribe do
defstruct channel: "/meta/subscribe", client_id: nil, error: nil, advice: nil, ext: nil, id: nil
import Pixie.Utils.Response
@moduledoc """
Convert an incoming `Pixie.Message.Subscribe` into a response.
Response
MUST include: * channel
* successful
* clientId
* subscription
MAY include: * error
* advice
* ext
* id
This struct contains the following keys:
- `:channel` always `"/meta/subscribe"`.
- `:client_id` the client ID generated by the server during handshake.
- `:error` an error message to send to the client explaining why the
request cannot proceed. Optional.
- `:ext` an arbitrary map of data the server sends for use in extensions
(usually authentication information, etc). Optional.
- `:id` a message ID generated by the client. Optional.
- `:advice` advice from the server about how to handle timeouts, polling
intervals, etc. See
[the Bayeux protocol](http://svn.cometd.org/trunk/bayeux/bayeux.html#toc_32)
for more information.
"""
@doc """
Create a `Pixie.Response.Subscribe` struct based on some fields from the
incoming message.
"""
def init %Pixie.Message.Subscribe{}=message do
%Pixie.Response.Subscribe{}
|> put(message, :id)
|> put(message, :client_id)
|> put(message, :subscription)
end
end