View Source WsClient (WsClient v0.3.1)

Summary

Functions

Sets the callback function that gets called with the received data from the connected web socket.

Starts websocat and connect to the given URL.

Disconnects and stops the underlying websocat connection and application. Returns :ok.

Sends a message to the connected web server via the client. The server's response data will be used in the provided callback function.

Functions

callback(worker, cb)

Sets the callback function that gets called with the received data from the connected web socket.

Examples

You could use the Phoenix PubSub system to handle the data.

defp callback(json) do
  with {:ok, data} <- JSON.decode(json |> to_string) do
    Phoenix.PubSub.broadcast!(Jip.PubSub, "topic", data)
  else
    err -> IO.inspect(err)
  end
end

WsClient.callback(DocuClient, cb)

It is also possible to change the callback at runtime.

iex> cb = fn data -> data |> IO.inspect end
#<Function<...>
iex> WsClient.callback(DocuClient, cb)
:ok

connect(worker, url)

Starts websocat and connect to the given URL.

Returns :ok or {:error, "Already connected"}.

Examples

iex> WsClient.connect(DocuClient, "wss://echo.websocket.org")
{:error, "Already connected"}
iex> WsClient.disconnect(DocuClient)
:ok
iex> WsClient.connect(DocuClient, "wss://echo.websocket.org")
:ok

disconnect(worker)

Disconnects and stops the underlying websocat connection and application. Returns :ok.

Examples

iex> WsClient.disconnect(DocuClient)
:ok

send(worker, command)

Sends a message to the connected web server via the client. The server's response data will be used in the provided callback function.

Make sure to include a newline '\n' character to submit the request.

Returns :ok.

Examples

iex> WsClient.send(DocuClient, "hello world\n")
:ok