mirror of
https://github.com/Retropex/bitfeed.git
synced 2025-05-12 19:20:46 +02:00
32 lines
770 B
Elixir
32 lines
770 B
Elixir
defmodule BitcoinStream.Metrics.SocketHandler do
|
|
@behaviour :cowboy_websocket
|
|
|
|
use Elixometer
|
|
|
|
def init(request, state) do
|
|
{:cowboy_websocket, request, state}
|
|
end
|
|
|
|
def websocket_init(state) do
|
|
Registry.BitcoinStream
|
|
|> Registry.register("metrics", {})
|
|
|
|
{:ok, state}
|
|
end
|
|
|
|
@timed(key: "timed.function")
|
|
def websocket_handle({:text, msg}, state) do
|
|
IO.puts("Metric message received: #{msg} | #{inspect self()}");
|
|
case msg do
|
|
"hb" -> {:reply, {:text, msg}, state};
|
|
"metric" -> {:reply, {:text, "{ \"type\": \"metric\", \"metric\": { \"key\": \"x\", \"val\": 3.14 }}"}, state}
|
|
_ ->
|
|
{:reply, {:text, "?"}, state}
|
|
end
|
|
end
|
|
|
|
def websocket_info(info, state) do
|
|
{:reply, {:text, info}, state}
|
|
end
|
|
end
|