microsoft / MixedReality-WebRTC

MixedReality-WebRTC is a collection of components to help mixed reality app developers integrate audio and video real-time communication into their application and improve their collaborative experience
https://microsoft.github.io/MixedReality-WebRTC/
MIT License
909 stars 283 forks source link

Node Dss Signaler component capabilities #762

Open dhaminitinAltran opened 3 years ago

dhaminitinAltran commented 3 years ago

Hi Fairly new to this library but aware of Webrtc. I have some questions and concerns regarding this library.

1) Is it possible to use other signalling servers apart from the node DSS signaller which is given in the tutorials as it is mentioned over there that it is not meant for production. if yes, then are there any known signalling servers that we can use if someone has already used and tested them in their use case for hololens2 and windows platform? If yes in this case as well do we have to write the unity implementation for supporting that?

spacecheeserocks commented 3 years ago

There isn't another signalling solution supplied by this library. The Node DSS signaller is just meant to be a quickstart, but (as documented) is not production ready.

Writing your own signaller is somewhat simple though - essentially, you just need to ensure that your peers can exchange the SDP/ICE messages via whatever means you like.

This is often done with some kind of custom HTTP API or WebSocket. Either way, it's your responsibility to handle that exchange on the server (e.g. it's your decision on how you ensure the Offer/Answer/ICE messages are distributed to the correct peers).

I'm sure there are other issues, but the main issues with Node DSS that make it not production ready are:

So whatever solution you choose, you should try to solve these issues, to ensure that calls are only established between the expected contacts, and that malicious users can't inject their own offers/answers into other people's calls.

Finally, it's worth noting that in many cases, a free/public/out-of-the-box "signalling server" doesn't usually make sense, as it's generally app-specific to decide how to join the 2 calls together, so it's unlikely you will ever find someone running a "production ready" signalling server, unless it's part of a larger product offering.