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
.
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
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
.
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.
See what’s it look like in a call between two peers.
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.
Feel free to submit you pull requests on this repository.