Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to build multi-user video chatting web app using webRTC, node.js and socket.io

im trying to make a web app that supports multi-user video chatting. ive read an article about webrtc on "getting started with webrtc" (http://www.html5rocks.com/en/tutorials/webrtc/basics/) and done some demo on codelab. but i still dont really know how to make it a 3-way conferencing call.i dont really know a lot about node.js and socket.io. just started learning them because im trying to build this video web app.

so my question is which part of webrtc or socket.io determines that more than 2 users can join the call? or any resource that you guys get direct me to?

thanks in advance.

like image 645
shangsunset Avatar asked Feb 10 '14 21:02

shangsunset


People also ask

Can I use socket IO for video streaming?

Using the WebRTC protocol, we can stream video in addition to audio and simply pipe it into an HTML video element instead of an audio element.

Does NodeJS support WebRTC?

node-webrtc is a Node. js Native Addon that provides bindings to WebRTC M87. This project aims for spec-compliance and is tested using the W3C's web-platform-tests project. A number of nonstandard APIs for testing are also included.

Does socket IO use WebRTC?

Adding the ability to allow others to stream their video Now it's time to use Socket.io and PeerJS. For those who don't know Socket.io allows us to do real-time communication. and PeerJS allow us to implement WebRTC.


2 Answers

WebRTC is peer-to-peer protocol(browser-to-browser) without server,So you must know about my browser i must know about your browser means(your browser codec,public ip,port,etc) then only we can able to communicate,so we are using signalling(socket.io:web socket two way communication protocol send some information about my browser ,and receive some information about you browser ,with nodeJS server then peer connection will establish)

Three user communication is also possible in WebRTC using mesh network,see you send some information to me (browser information) at a same time you send this same information to other peer,when i receive some information about your i will send some information about me to you and other peer,the same thing will happen in other peer also.

Here some detail about mesh network http://en.wikipedia.org/wiki/Mesh_networking

like image 92
Murugan Pandian Avatar answered Nov 14 '22 21:11

Murugan Pandian


I would say that there are two separate things here. WebRTC needs signaling to setup the peer-to-peer communication between two nodes. I think you are on the right track when using Node.js and Socket.js for this.

But it is not WebRTC (or socket.io) that decides if a third part can join the meeting, it is you that decides this. And this is the other part of the signaling that have little to do with WebRTC.

This meens that you implement functionality like setting up meetingroom, discover available meetingrooms, joining meetingrooms etc. When the three part meeting is up and running, each node will have two peer connections, one to each of the other nodes.

like image 23
Mikael Holmgren Avatar answered Nov 14 '22 22:11

Mikael Holmgren