25 lines
752 B
Elixir
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
|