What does HackerNews think of serverless-webrtc?

A demo of using WebRTC with no signaling server.

Language: JavaScript

I recently learned you can do the candidate server exchange without those servers. There was an implementation which used [this](https://github.com/cjb/serverless-webrtc) as a backend and a QR code to do the transfer. I can't seem to find it now. However they were having issues with the QR code reaching its size limit, leading to the question of whether you could break the message into a series of qr codes.

Pretty interesting stuff, I was considering taking a crack at it as part of a project I'm working on.

Edit: [here](https://franklinta.com/2014/10/19/serverless-webrtc-using-qr... the blog post about it

I know I've seen at least data channel working without STUN, this was the demo I think: https://github.com/cjb/serverless-webrtc/

If you say it's different with media channels, I'll believe you.

WebRTC can tell you your ip address without any external server, that only breaks if you are dealing with NAT.

edit: to clarify the NAT-less use case, i'm thinking of apps that can rely on/require p2p supporting IPv6 connectivity.

Please do head over to https://github.com/cjb/serverless-webrtc to make issues and PRs! The most painstaking part for me is how long it takes to get the offer in the first place without a useful dialog.
The post makes it sound like it's a copy of https://github.com/cjb/serverless-webrtc uploaded to IPFS; examining the code [1] shows that '23.21.150.121' is hardcoded for STUN.

This was seemingly set up by Wesley Dawson [2] at Mozilla in 2013, at which point it was an EC2 machine in AWS us-east-1. It subsequently made it into various gists and projects as a public STUN server.

Later in 2013 Mozilla changed over to using a hostname in Firefox instead [3], and much later Firefox 41 removed [4] Mozilla's STUN servers from being defaults.

I'm not sure how one would go about confirming that this service is still pro bono and not malicious, and whether it's likely to stick around in the future.

[1] https://github.com/cjb/serverless-webrtc/blob/master/js/serv... [2] https://bugzilla.mozilla.org/show_bug.cgi?id=807494 [3] https://bugzilla.mozilla.org/show_bug.cgi?id=920991 [4] https://bugzilla.mozilla.org/show_bug.cgi?id=1143827

Yes; vaguely... there was some (string) message format that you could manually stitch together with the right IP and port, etc, and basically tell the browser's WebRTC implementation "other client is on this IP and port". I seem to have deleted this code unfortunately, the only thing I saved is this link:

https://github.com/cjb/serverless-webrtc/

EDIT:

Aha! I based my code on: https://github.com/js-platform/node-webrtc/blob/develop/exam...

> there was no depending on external services, which at the time put WebRTC out of the picture (all of the easy to use implementations required internet access to use existing signaling services)

See: https://github.com/cjb/serverless-webrtc

That's a good rough demo of how WebRTC connections can still be established with the ask/offers being conveyed out-of-band.

To make it a little more friendly for tablets (and to accomplish before messages expire) I'd think QR codes would be a reasonable way of passing the data without depending on an external service.

There could also be some extraneous information that can be stripped to save on the amount of data you pass between peers so that the QR code isn't excessively gross (see: https://webrtchacks.com/the-minimum-viable-sdp/)

Dude. You're really focusing on the wrong thing here. No one is lying or attempting to deceive. At worst, the term is being used loosely - at worst. At best it's only referring to the portion of the work that happens during "multi player".

I get your frustration with software development jargon but this seems like an odd choice to attack.

And to two of your points, here's a version that is "serverless", and can run completely from the file system.

https://github.com/cjb/serverless-webrtc

But is it truly "serverless"? I mean the file system is serving the file up to the browser!

C'mon.

Oh, and in case you were going to point out that there's a server involved in the link I posted because, "the WebRTC offer/answer exchange is performed manually by the users, for example via IM", (emphasis mine) - the information could just as easily be written on a piece of paper and exchanged via carrier pigeon. The pigeon may still technically be a server, in an architectural sense I suppose, but hopefully at that point you'd agree we're taking the argument past the point of any sensibility.

Yes, but that's not the point here. The point is getting the code that knows what to do with the WebRTC connection.

Since you asked: https://github.com/cjb/serverless-webrtc/

Have you looked into WebRTC much? It supports arbitrary (text or binary) data transfer between browsers, in both TCP-like and UDP-like modes, with inbuilt NAT-busting (both STUN and TURN). It does NAT-busting rather than VPN, so it's faster than either Tor or a VPN.

So if the reason you wanted NAT traversal was "my (browser|game|filesystem) wants to share data with someone else's", WebRTC is a far easier answer, and is now available to most browsers[1] without extra software installs. It does involve a privacy loss of your connection details to the STUN/TURN server, but the signaling server cannot decrypt your (DTLS) communication.

If the reason you want a global LAN isn't those things, what is it?

[1]: Available outside browsers, too: see e.g. my Node WebRTC chat client -- https://github.com/cjb/serverless-webrtc -- or the native C++ API.