82 Commits

Author SHA1 Message Date
David Zhao 57a13f9930 fix synchronization issues, use AtomicFlag/atomic.Value for shared fields 2021-01-29 00:49:32 -08:00
David Zhao dd8a1a5055 use atomic.Load to ensure atomicity 2021-01-28 23:40:30 -08:00
David Zhao 0e48711e4b don't send participant updates to closed participants (typo fix) 2021-01-28 01:00:48 -08:00
David Zhao 0813a55617 ignore duplicate tracks being published 2021-01-27 09:42:02 -08:00
David Zhao 61db4f5b66 fixed multi-node so signal node can start sessions 2021-01-26 23:52:55 -08:00
David Zhao ed0b9db655 avoid sending to closed channels 2021-01-26 21:45:00 -08:00
David Zhao a065a01592 fixed panic when client connected abruptly 2021-01-26 17:38:47 -08:00
David Zhao b7acdfeec1 fixed syntax error in test 2021-01-26 10:38:31 -08:00
David Zhao 1f8bb57c92 handle when RTCP comes in after track is closed 2021-01-25 00:03:39 -08:00
David Zhao 01d62edafa doc updates 2021-01-24 15:18:34 -08:00
David Zhao c4fb1b3808 fixed localrouter timeout, updated VideoGrant fields 2021-01-24 12:52:40 -08:00
David Zhao 0b00b26d05 terminate RTC sessions properly 2021-01-19 16:18:03 -08:00
David Zhao 71b4673a0a cleanup room state, proper participant termination 2021-01-18 23:44:59 -08:00
David Zhao d83a1b1af3 automatically cleanup participant redis data 2021-01-18 17:56:48 -08:00
David Zhao 9064f6ade1 decouple websocket and RTC nodes, prep for distributed 2021-01-16 10:37:38 -08:00
David Zhao 381ec58050 some tests 2021-01-12 18:03:08 -08:00
David Zhao bd885b1de9 handle unpublish track 2021-01-12 17:07:01 -08:00
David Zhao 21ac2413a2 catch panics to ensure reliability 2021-01-11 00:07:11 -08:00
David Zhao 6464ae3cd6 send downtrack binding reports
fixed tests
2021-01-10 22:36:24 -08:00
David Zhao 456df0fb91 use IsReady instead of checking for multiple statuses 2021-01-10 22:09:36 -08:00
David Zhao 7dcb88343a binding to buffer and correctly forwarding 2021-01-10 16:18:58 -08:00
David Zhao 258f5add2d protocol update: explicit AddTrack to move negotiation initiation to server side.
In order to avoid race conditions with WebRTC, where either side could initiate an offer when tracks have changes, we'll always initiate them from the SFU side.
2021-01-09 23:40:29 -08:00
David Zhao 0336e9d92f tests for MediaTrack, moving interfaces to new package 2020-12-31 23:24:45 -08:00
David Zhao 313236e3d3 server to support mutes 2020-12-31 14:21:19 -08:00
David Zhao 46b5942a95 allow cross origin requests 2020-12-28 10:25:27 -08:00
David Zhao 3fb606236e sends roominfo on join 2020-12-27 22:38:13 -08:00
David Zhao 46dadc25c2 simplify token issuer/verifier interface 2020-12-27 20:53:07 -08:00
David Zhao ba8545954e removed channeltype, never used 2020-12-25 22:59:00 -08:00
David Zhao 9897412473 roommanager tests 2020-12-25 22:54:58 -08:00
David Zhao 804b7cb332 JWT token based auth 2020-12-25 22:31:11 -08:00
David Zhao 8f34bd6086 cleaned up some deps 2020-12-22 23:11:24 -08:00
David Zhao 026c8725a3 finished room test 2020-12-22 20:59:39 -08:00
David Zhao 3518435783 using counterfeiter instead of gomocks, much simpler 2020-12-22 17:26:26 -08:00
David Zhao ed472c8569 progress with a bit of tests 2020-12-21 23:23:57 -08:00
David Zhao 2a79bdb678 switch participant to interface 2020-12-21 23:00:48 -08:00
David Zhao c4cb29a3bb use PeerConnection interface to make it easier to mock 2020-12-20 22:57:06 -08:00
David Zhao 684099d653 slight refactoring, WS sends periodic ping 2020-12-20 16:13:12 -08:00
David Zhao 72d853589c buffer messages 2020-12-20 13:43:16 -08:00
David Zhao 51092dce53 don't error on EOF 2020-12-19 23:16:55 -08:00
David Zhao e9fdd5d2fd ignore placeholder data channel 2020-12-19 16:18:58 -08:00
David Zhao f753172308 datatrack implementation 2020-12-19 16:13:56 -08:00
David Zhao fb3c3b0565 just use src 2020-12-18 23:14:36 -08:00
David Zhao 050da05000 Send PLI when target client doesn't have keyframes 2020-12-17 22:28:03 -08:00
David Zhao 2111513fde track published response, to allow client to assign sid to published tracks 2020-12-17 21:48:48 -08:00
David Zhao 2665026830 use context to detect when channel is properly closed 2020-12-16 00:13:43 -08:00
David Zhao ac83bf4c78 subscribe new participant after JOINED, to ensure negotiate requests aren't missed 2020-12-13 23:08:20 -08:00
David Zhao af0c9dfdf0 server back to working, tho only works when client joins first 2020-12-12 23:05:53 -08:00
David Zhao 4c9623bb49 updated cli to v3 2020-12-12 22:07:06 -08:00
David Zhao 7d7787590c updated server to webrtc v3 (untested) 2020-12-11 20:15:04 -08:00
David Zhao 2b9fee45c4 fixed deadlock when client disconnecting 2020-12-05 22:20:13 -08:00