Skip to content

Commit b05bb9c

Browse files
authored
Add peer_left message to signaling server (#16)
* Change WS timeout to default 60s * Add `peer_left` message to signaling server * Update README.md
1 parent 97993e4 commit b05bb9c

File tree

3 files changed

+18
-2
lines changed

3 files changed

+18
-2
lines changed

signalling_server/README.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,4 +23,12 @@ sock = new WebSocket("ws://localhost:4000/websocket")
2323

2424
The `role` field is a role a peer that received info JSON should use to avoid role conflict.
2525

26-
3. Send any message via WS, it will be forwarded to the other side.
26+
3. Send any message via WS, it will be forwarded to the other side.
27+
28+
4. When a peer leaves, the other one receives JSON message:
29+
30+
```json
31+
{
32+
"type": "peer_left"
33+
}
34+
```

signalling_server/lib/room.ex

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,16 @@ defmodule SignallingServer.Room do
7474

7575
state =
7676
if ref == state.p1_ref do
77+
if state.p2 do
78+
send(state.p2, {:forward, Jason.encode!(%{type: "peer_left"})})
79+
end
80+
7781
%{state | p1_ref: nil, p1: nil}
7882
else
83+
if state.p1 do
84+
send(state.p1, {:forward, Jason.encode!(%{type: "peer_left"})})
85+
end
86+
7987
%{state | p2_ref: nil, p2: nil}
8088
end
8189

signalling_server/lib/router.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ defmodule SignallingServer.Router do
1717

1818
get "/websocket" do
1919
conn
20-
|> WebSockAdapter.upgrade(SignallingServer.PeerHandler, [], timeout: 2_000)
20+
|> WebSockAdapter.upgrade(SignallingServer.PeerHandler, [], [])
2121
|> halt()
2222
end
2323

0 commit comments

Comments
 (0)