Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/roccomuso/rtc-web-term

Web-RTC based Web Terminal
https://github.com/roccomuso/rtc-web-term

p2p react rtc shell terminal web web-rtc

Last synced: 2 months ago
JSON representation

Web-RTC based Web Terminal

Awesome Lists containing this project

README

        

# rtc-web-term Patreon donate button [![NPM Version](https://img.shields.io/npm/v/rtc-web-term.svg)](https://www.npmjs.com/package/rtc-web-term) [![Dependency Status](https://david-dm.org/roccomuso/rtc-web-term.png)](https://david-dm.org/roccomuso/rtc-web-term)

> Cool Web-RTC web-terminal that works well with the [rtc-shell](https://github.com/roccomuso/rtc-shell) utility to enstablish a P2P connection.

![img](demo.png)

Try the working [Live Demo](https://roccomuso.github.io/rtc-web-term/)!

## How this works

1. An "offer" will be generated by the initiator (rtc-shell). Paste this into the web-terminal hit enter.
2. The web-terminal generates an "answer". Paste this into the initiator's shell and hit enter.
3. Now you have a direct P2P connection between the shell and the browser web-page!

Supposing you're using [rtc-shell](https://github.com/roccomuso/rtc-shell) just launch it with: `rtc-shell -l -x /bin/sh`, then copy and paste the initiator string into the web-terminal using the command:

`@signal `

The web-terminal will reply with another initiator, copy and paste it to the rtc-shell and hit enter.

You're ready to go! A browser-based p2p-shell.

## Enhancement

In a real-world application, you would never do this.
A "signaling server" (usually implemented with websockets) would be used to exchange signaling data between the two browsers until a peer-to-peer connection is established.
Avoiding a manual handshake.

## Author

Rocco Musolino ([@roccomuso](https://twitter.com/roccomuso))