Show HN: WebRTTY – Share a terminal session over WebRTC
github.com
github.com
The tutorials other people have linked to look good, just note that unless you're talking between 2 computers within your local network (and even then you'll have to copy-paste their IP addresses to each other), you'll need to either deploy a server or use a 3rd party library like PeerJS that uses one.
I hope that eventually IPv6 will obviate the need for NAT and make this whole thing much simpler, but until then, this is what we've got.
I guess that's where your central server comes in - even in a perfect scenario where there's no NAT between peers.
It is very easy to get running in your computer since it's made with the purpose of explaining data flow withing WebRTC, logs have been implemented describing this flow in both client and server, you can find a blog post about it here [1].
[0] https://github.com/agilityfeat/file-transfer-demo
[1] https://webrtc.ventures/2018/04/file-transfers-small-demonst...
I was once in need to stream my shell to some colleges and so I hacked together a tiny shellscript http://liveshell.43z.one/ which should work on most Linux systems without installing any dependencies.
The -o flag makes things easier but uses https://10kb.site to do the sdp exchange
That shell script is cool
* https://github.com/xhs/librtcdc (This was the first non-chrome one afaik)
* https://github.com/chadnickbok/librtcdcpp
* https://github.com/jlaine/aiortc
* https://github.com/rawrtc/rawrtc
* https://github.com/pions/webrtc
* https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gs...
There are also a few that aren't public, I haven't used them directly though. Only by talking to other devs.
The best thing about Go is those easy deploys, it would be great to drop this on a remote server and go at it. Could be helpful for getting quick shell help for a friend. Or maybe a way for people to avoid having jump boxes (and SSH only available via VPN) solutions are endless :)
WebRTC still needs to communicate between peers in order to set up that connection. In fact, many applications using it will use a WebSocket server to handle that initial communication – basically messages between the peers that say "this is where I am and how you can connect". In the case of this WebTTY project, this initial communication is encoded in the "connection data" that needs to be shared to set up the connection, so there's no need for that channel.
https://savannah.nongnu.org/projects/rtty/
They do call out the potential confusion with radio.