1 defmodule Pleroma.Integration.WebsocketClient do
2 # https://github.com/phoenixframework/phoenix/blob/master/test/support/websocket_client.exs
5 Starts the WebSocket server for given ws URL. Received Socket.Message's
6 are forwarded to the sender pid
8 def start_link(sender, url, headers \\ []) do
12 :websocket_client.start_link(
13 String.to_charlist(url),
16 extra_headers: headers
28 Sends a low-level text message to the client.
30 def send_text(server_pid, msg) do
31 send(server_pid, {:text, msg})
35 def init([sender], _conn_state) do
36 {:ok, %{sender: sender}}
40 def websocket_handle(frame, _conn_state, state) do
41 send(state.sender, frame)
46 def websocket_info({:text, msg}, _conn_state, state) do
47 {:reply, {:text, msg}, state}
50 def websocket_info(:close, _conn_state, _state) do
51 {:close, <<>>, "done"}
55 def websocket_terminate(_reason, _conn_state, _state) do