Proxichat/web/channels/network_channel.ex
2015-11-29 13:14:33 +02:00

25 lines
752 B
Elixir

defmodule Proxichat.NetworkChannel do
use Phoenix.Channel
alias Proxichat.ChannelAuthenticator
def join("networks:" <> network_id, %{"user_id" => id, "lat" => lat, "lon" => lon}, socket) do
send self, {:after_join, id, {lat, lon}}
{:ok, socket}
end
def handle_in("new_msg", %{"body" => body, "user_id" => id}, socket) do
broadcast! socket, "new_msg", %{body: body, user_id: id}
{:noreply, socket}
end
def handle_in("kthxbye", %{"body" => _, "user_id" => id}, socket) do
broadcast! socket, "goodbye", %{user_id: id}
{:reply, :ok, socket}
end
def handle_info({:after_join, id, {lat, lon}}, socket) do
broadcast! socket, "fresh_blood", %{user_id: id, lat: lat, lon: lon}
{:noreply, socket}
end
end