Skip to content
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

Current status of Public hubs #34

Open
hansSchall opened this issue Feb 11, 2025 · 2 comments
Open

Current status of Public hubs #34

hansSchall opened this issue Feb 11, 2025 · 2 comments

Comments

@hansSchall
Copy link

This project is a really cool demonstration of what is possible with WebRTC!

For one of my current projects this might actually be usefull, but I need to connect different devices, so I require the Public Hub which seems to be a stub right now.

Would it be enough to implement a simple messaging system (we have a maximum of a dozen concurrent users) that behaves like the Private Hub? We already have implemented something simmilar in a previous iteration of our project, back then we manually did all the WebRTC things. This local-network-like abstraction would save us a lot of work.

@sinclairzx81
Copy link
Owner

sinclairzx81 commented Feb 11, 2025

@hansSchall Hi,

Would it be enough to implement a simple messaging system (we have a maximum of a dozen concurrent users) that behaves like the Private Hub? We already have implemented something simmilar in a previous iteration of our project, back then we manually did all the WebRTC things. This local-network-like abstraction would save us a lot of work.

A public hub implementation should be relatively straight forward to implement if you've built a WebRTC signaling server before. The hub is a simple message forwarding service that runs over a web socket (or other transport) and just needs to forward RTC Candidate / SDP messages between peers connected to the Hub.

I have been meaning to publish a formal implementation at some point, but did prepare the following reference starter project for another user.

https://github.com/user-attachments/files/16594550/smoke-starter.zip

To use, unzip the project and run the following from the project root.

$ npm install 

$ npm start        # website: port 5000
                   # hub: port 5001

The server backend is written with https://github.com/sinclairzx81/sidewinder, and should be fairly self explanatory. Feel free to take this project and put it under a GH repo. It handles basic connectivity only, but you can extend it to support additional functionality, or just use it as a reference implementation if you want to build the service using another stack.

Let me know how you go.
Cheers
S

@hansSchall
Copy link
Author

Thank you for the example app, I will have a look at this during the next weeks and eventually create a PR for the WS client.

We use Deno for our backend, so I will implement a signalling server with Deno, too.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants