Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/roccomuso/rtc-web-term
- Owner: roccomuso
- License: mit
- Created: 2017-07-02T16:36:24.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2017-09-18T10:53:33.000Z (over 7 years ago)
- Last Synced: 2024-10-14T04:23:00.907Z (2 months ago)
- Topics: p2p, react, rtc, shell, terminal, web, web-rtc
- Language: JavaScript
- Homepage: https://roccomuso.github.io/rtc-web-term/
- Size: 1.19 MB
- Stars: 7
- Watchers: 3
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# rtc-web-term [![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))