Tech demo using js-ipfs pubsub to do signaling

318 views
Skip to first unread message

chad...@gmail.com

unread,
Feb 11, 2019, 2:04:28 AM2/11/19
to discuss-webrtc
Howdy,

I have placed the work I've done at: https://github.com/cretz/webrtc-ipfs-signaling

It is the cleanest way I've seen to signal WebRTC when you don't want to run/maintain your own signaling server. Now you can use WebRTC just uploading a static site (as I've done here w/ GitHub pages). There are caveats of course. See the repo for more info. Feedback/questions appreciated.

Chad

se...@pion.ly

unread,
Feb 12, 2019, 4:05:34 AM2/12/19
to discuss-webrtc
Hey!
Amazing work, the demo worked instantly with zero bugs! It also connected really fast (didn't realize how fast IPFS was) I have been meaning to learn more about it...

I would love to wrap this all up in one binary, how great would it be to have decentralized conferencing that is a single static binary? If there is anything else I can do to help with making Pion work better always happy to help :)

chad...@gmail.com

unread,
Feb 12, 2019, 10:47:41 AM2/12/19
to discuss-webrtc
Pion is perfect, no need to improve it.

Yeah, this only works on the browser side. IPFS leaves a lot to be desired for programmatic use. And it appears the JS side doesn't speak to the Go side yet. I appreciate the idea of using a DHT for signaling, but I haven't found a good impl that works in the browser and Go. While bittorrent mainline DHT would be reasonable, even webtorrent doesn't seem to write to it properly from the client side.

So I've kinda abandoned using IPFS for signaling until JS IPFS and Go IPFS do better. However I did find https://www.websocket.in/ which is a wonderful service and one that I would like to see the big guys (Google, Mozilla, CloudFlare, etc) emulate. I am a bit disappointed that my research has shown so few publicly available signaling options. We don't even need ephemeral state, just a pipe that doesn't require sign up...lock it down if you need to, or at first don't even allow any bytes (e.g. encrypted offers/answers) and parse the SDP and put limits on it.

I have been considering taking several signaling approaches and wrapping them in an abstraction so people could have fallbacks. Sadly there aren't that many options available right now so it's fruitless.

Feross Aboukhadijeh

unread,
Feb 12, 2019, 3:12:04 PM2/12/19
to discuss...@googlegroups.com
> even webtorrent doesn't seem to write to it properly from the client side

Unfortunately, it's not possible for WebTorrent to connect to the Mainline BitTorrent DHT from the browser as that requires the ability to open TCP sockets which is not part of the web platform.

Feross 


--

---
You received this message because you are subscribed to the Google Groups "discuss-webrtc" group.
To unsubscribe from this group and stop receiving emails from it, send an email to discuss-webrt...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/discuss-webrtc/abac68a6-e110-49c4-9c5a-b687a6cb7350%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

chad...@gmail.com

unread,
Feb 19, 2019, 9:50:21 AM2/19/19
to discuss-webrtc
I was able to leverage https://gun.eco/ for signaling. So I made a larger, still open source project for sharing your screen: https://myscreen.live/
Reply all
Reply to author
Forward
0 new messages