This is an educational implementation with SvelteKit and NodeJS WebSockets for signalling.
The main purpose here is to observe the limits of a full-mesh topology for a network and computationally intensive task like video through WebRTC.
The client is a simple SvelteKit app. We need a simple environment variable to point to the server host:
cd packages/client
echo 'PUBLIC_WS_SERVER_URL="http://localhost:8080"' > .env.local
yarn install
yarn dev
Despite the peer-to-peer architecture, implementation would be much harder without a signalling server. Here we use websockets.
cd packages/server
yarn install
yarn dev
This is almost the same process. Don't forget to set the client's environment variable in your deployment environment.
cd packages/client
yarn install
yarn build
yarn start
cd packages/server
yarn install
yarn start