# README
WebRTC
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.