A multi-user real-time audio and video communication application based on WebRTC. See the demo at: https://world-meeting.herokuapp.com
- Join/leave room
- Call with video/audio
- Send messages/files
Frontend:
yarn
cd frontend
yarn
yarn dev
Then open: https://localhost/#/
Backend:
cd backend
yarn
yarn dev
-
Download
ngrok
-
Run the
http
command to forward the local dev server to public networkngrok http 443
-
Inspect the app using the
xxx.ngrok.io
link
- Use native
RTCPeerConnection
to form a Mesh topology network in a single room- Each client maintains (n - 1)
RTCPeerConnection
to connect with different users in the same room
- Each client maintains (n - 1)
- Use Socket.IO backend as a signal to help discover different users, passing signals, user updates and messages
heroku create
git push heroku main
heroku ps:scale web=1
heroku open
- https://github.com/vuejs/rfcs/blob/master/active-rfcs/0040-script-setup.md
- https://socket.io/docs/v4/listening-to-events/
- https://socket.io/docs/v4/emit-cheatsheet/
- https://socket.io/docs/v4/client-initialization/
- https://github.com/webrtc/samples
- https://webrtc.org/getting-started/firebase-rtc-codelab
- WebRTC 技术详解, 栗伟
- WebRTC 音视频实时互动技术——原理、实战与源码分析, 李超
- https://www.youtube.com/watch?v=RPireLVSPAo
- https://github.com/coturn/coturn
- https://meetrix.io/blog/webrtc/coturn/installation.html