Skip to content

amirhnajafiz/webrtc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

94 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WebRTC

GitHub release (with filter)

Implementing a Video application with WebRTC. In this project we are going to use Javascript WebRTC modules and Websockets in order to create a communication system over video stream. For our signaling server we are going to use Golang Fiber.

setup

In order to set up project you have two options. You can build it on your own system (you need to have Golang installed on your system) or you can start it on a container.

Build the project on your system:

go build -o main
chmod +x ./main
./main

env

Set the project env variables to deploy it on production

HTTP_PORT=80 # project port
DEV_MODE=false # logging option
APP_VERSION=v0.2.0 # app version

Run the project on container:

docker run --rm -it -d -p 80:80 $(docker build -q . -f build/Dockerfile)

After that you can access the application on localhost.

network activity

As you can see in network activity diagram, two peers connect to signaling server, stun server, and turn server in order to setup a session for communicating over webrtc protocol.

visual schema

See what’s it look like in a call between two peers.

fsm

In the following schema you can see the application Finite State Machine. The process of making a call and joining a call is being handled like this.

resources

contribute

Feel free to submit you pull requests on this repository.