Skip to content

VenuChoudhary001/Wave

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WaveConnect Logo

WebRTC JavaScript Socket.IO Tailwind CSS PeerJS

DescriptionArchitectureWebRTCInstallation and SetupLicense


Description

WaveConnect is a JavaScript-based video conferencing application using WebRTC, featuring a mesh topology to facilitate seamless multi-peer connections.

Architecture

architecture

WebRTC

  • A wants to connect to B.
  • A creates an offer, which includes SDP, ICE candidates, and security options.
  • A sends the offer to B using a chosen method.
  • B creates an answer after processing A's offer.
  • B sends the answer back to A.
  • Connection is established.

(Additional information about NAT, STUN, TURN, ICE, and SDP is provided.)

(Additional information about NAT, STUN, TURN, ICE, and SDP is provided.)

  1. NAT : Network Address Translation

  2. STUN Server :

    • Session Traversal Utilities for NAT
    • Does nothing, just required to get our public address so that we can share it to communicate with others, since we are using NAT.
  3. TURN Server :

    • Traversal Using Relays around NAT
    • Just a normal server that relays packets
  4. ICE :

    • Interactive Connectivity Establishment : protocol
    • ICE collects all available candidates(ice candidates)
    • All collected addresses are then sent to remote peer via SDP.
  5. SDP (Session Description Protocol)

    • A format that describes ice candidates, networking options,media options, securtiy options and a lot of other stuff
    • Not a protocol, its a format
    • The goal is to take the SDP generated by user and send it to the other party
  6. Signalling

    • Send the SDP to other party via any of methods available like web sockets, HTTP request.

Installation and Setup

Prerequisites: node js, yarn/npm, git

  1. Clone the repository:
git clone https://github.com/VenuChoudhary001/Wave.git

Change the directory to wave-server

cd wave-server
$ yarn dev

Setup Peer server

  • Using npm
$ npm install peer -g
  • Using yarn
$ yarn add peer -g

Running peer server

Open a new terminal window and run server

$ peerjs --port 9000

Change the directory to wave-client

Install dependencies

$ yarn

Add the socket port here

let socket = io(`${SOCKET_SERVER_URL}`);
const myPeer = new Peer(undefined, {
  host: "/",
  port: "9000",
});

Start client

$ yarn start

License

This project uses an MIT license.

(back to top)

About

Video Conferencing web application in Vanilla Javascript utilizing WebRTC

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published