because-why-not / awrtc_signaling

BSD 3-Clause "New" or "Revised" License
25 stars 25 forks source link

Node.js client #9

Open piranna opened 3 years ago

piranna commented 3 years ago

This PR adds a client targeted to be used in Node.js apps, so they can act as clients of the signaling server and participants of the mesh network, for example to implement a proxy to send streams to an MCU or SFU. It has been done by reverse-engineering the protocol from the actual signaling server implementation.

Additionally, it does some improvements in the project and code structure, like unifying the place where messages are decoded, and some backward compatible improvements and fixes in the protocol itself, like ensure that all request messages generate an answer that clients can wait for.

This work has been sponsored by Atos Research & Innovation, with funds from European Union H2020 program.