Merge branch 'filetype-recognition' into 'develop'
[akkoma] / lib / pleroma / web / mastodon_api / mastodon_socket.ex
1 defmodule Pleroma.Web.MastodonAPI.MastodonSocket do
2 use Phoenix.Socket
3
4 transport :streaming, Phoenix.Transports.WebSocket.Raw,
5 timeout: :infinity # We never receive data.
6
7 def connect(params, socket) do
8 if params["stream"] == "public" do
9 socket = socket
10 |> assign(:topic, params["stream"])
11 Pleroma.Web.Streamer.add_socket(params["stream"], socket)
12 {:ok, socket}
13 else
14 :error
15 end
16 end
17
18 def id(socket), do: nil
19
20 def handle(:text, message, state) do
21 IO.inspect message
22 #| :ok
23 #| state
24 #| {:text, message}
25 #| {:text, message, state}
26 #| {:close, "Goodbye!"}
27 {:text, message}
28 end
29
30 def handle(:closed, reason, %{socket: socket}) do
31 topic = socket.assigns[:topic]
32 Pleroma.Web.Streamer.remove_socket(topic, socket)
33 end
34 end