yjs / y-webrtc

WebRTC Connector for Yjs
MIT License
448 stars 109 forks source link

Use existing (3rd party) signaling server implementation #55

Open WofWca opened 11 months ago

WofWca commented 11 months ago

Checklist

Is your feature request related to a problem? Please describe. Currently y-webrtc uses a custom server for signaling. I think this is not ideal because it's a comparatively niche thing. Sometimes public servers go down (#43), creating a big headache for app developers that now have to set up a new server (that might go down as well). Having a custom server also adds maintenance costs.

Describe the solution you'd like Rely on another existing server that can be used for signaling. For example, https://github.com/peers/peerjs-server. Or, I heard, you can use https://github.com/centrifugal/centrifugo for signaling (there is a concept of rooms (channels) as well).

Describe alternatives you've considered

None

Additional context

I'm not 100% sure this is a good idea, and I didn't look into details of how the current signaling server works, or how Centrifugo works. It's just a high-level idea that I think it makes sense to strive for.

ngryman commented 9 months ago

I had the same concerns and went ahead by creating a Rust-based signaling server here. You can host it for free on fly.io. I'm currently using it for my app and I expect to maintain it in the future.

Posting it here in case anyone is interested :)