-
Notifications
You must be signed in to change notification settings - Fork 55
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
WebRTC signaling server support #408
Comments
It might also be useful to provide STUN and TURN capability |
It's worth noting that the current WebRTC implementation/setup in js-libp2p relies on an old setup which predates the existence of Relays and Rendezvous services. Relays are a sort of STUN/TURN service that any capable node can advertise and it's used just as any other transport and address pair. Rendezvous nodes can advertise any type of service, including relays, which allows seamless transport and runtime interoperability. |
This will not be added to nim-libp2p, because it's getting deprecated from libp2p anyway As mentionned by @dryajov, browsers will be able to use Relay over WS to negotiate their webrtc connection. Rendezvous is a discovery mechanism that it's on our roadmap ATM, but any discovery system can be used instead |
In addition to the above, I also want to reference libp2p/specs#220 here, tracking the WebRTC project on the libp2p project level. |
Thanks, I was actually looking for this issue earlier and couldn't find it! |
Problem
For Waku v2 nodes to talk to each other in a web browser, they need to be able to discover each other. This requires a WebRTC signaling server. This would enable use cases such as live audio and video chat.
The current PoC (https://github.com/vacp2p/waku-web-chat/) is using a basic NodeJS signaling server https://github.com/libp2p/js-libp2p-webrtc-star
It'd be useful to have a native Nim implementation, especially since stability in resource restricted environments is useful here.
I believe this does not require implementing the full WebRTC spec, since it is more about allowing these browser nodes to discover each other.
Acceptance criteria
The text was updated successfully, but these errors were encountered: