-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathhandshake_channel.ex
More file actions
39 lines (32 loc) · 914 Bytes
/
Copy pathhandshake_channel.ex
File metadata and controls
39 lines (32 loc) · 914 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
defmodule WebrtcPhxWeb.HandshakeChannel do
use Phoenix.Channel
def join("handshake:" <> name , _, socket) do
socket
|> assign(:name, name)
|> (&{:ok, &1}).()
end
def handle_in("offer", %{"target" => target, "offer" => offer}, socket) do
WebrtcPhxWeb.Endpoint.broadcast(
"handshake:" <> target,
"offer",
%{from: socket.assigns.name, offer: offer}
)
{:noreply, socket}
end
def handle_in("answer", %{"target" => target, "answer" => answer}, socket) do
WebrtcPhxWeb.Endpoint.broadcast(
"handshake:" <> target,
"answer",
%{from: socket.assigns.name, answer: answer}
)
{:noreply, socket}
end
def handle_in("ice", %{"target" => target, "ice" => ice}, socket) do
WebrtcPhxWeb.Endpoint.broadcast(
"handshake:" <> target,
"ice",
%{from: socket.assigns.name, ice: ice}
)
{:noreply, socket}
end
end