如何使用webRTC,node.js和socket.io构build多用户video聊天Web应用程序

即时通讯试图build立一个支持多用户video聊天的networking应用程序。 我读了一篇关于webrtc的文章,关于“webrtc入门”( http://www.html5rocks.com/en/tutorials/webrtc/basics/ ),并在codelab上做了一些演示。 但我仍然不知道如何使它成为一个三方会议call.i真的不知道很多关于node.js和socket.io。 刚开始学习他们,因为即时通讯试图build立这个videonetworking应用程序

所以我的问题是哪个部分的webrtc或socket.io确定超过2个用户可以join呼叫? 或者你们直接给我的任何资源?

提前致谢。

我会说在这里有两件不同的事情。 WebRTC需要信令来build立两个节点之间的点对点通信。 我想你在使用Node.js和Socket.js的时候是正确的。

但是决定第三部分是否可以join会议的并不是WebRTC(或socket.io),而是你自己决定的。 这是与WebRTC无关的信号的另一部分。

这些function包括设置会议室,发现可用的会议室,join会议室等。当三部分​​会议启动并运行时,每个节点将有两个对等连接,每个节点连接一个。

WebRTC是没有服务器的点对点协议(浏览器到浏览器),所以你必须知道我的浏览器,我必须知道你的浏览器的意思(你的浏览器编解码器,公共IP地址,端口等),那么只有我们能够所以我们正在使用信号发送(socket.io:web socket双向通信协议发送一些关于我的浏览器的信息,并且接收一些关于你浏览器的信息,用nodeJS服务器然后build立对等连接)

WebRTC也可以使用Meshnetworking进行三次用户通信,看到你发送一些信息给我(浏览器信息)同时你发送同样的信息给其他同行,当我收到一些关于你的信息时,我会发一些关于我的信息对你和其他同行来说,同样的事情也会在其他同行中发生。

这里有一些关于网状networking的细节http://en.wikipedia.org/wiki/Mesh_networking

我也查看了这些协议,不知道node.js和sockets.io可以做什么,但是我认为它是一个很大的错误,因为所有你需要做的就是创build一个地方,多个用户将他们的摄像头图像,然后每个人都可以单独访问这个地方来查看所有的对话。 这应该是快,虽然因为不是一个video问题,但如果信号慢,那么它不会被理解。 我会尝试别的。 我想知道为什么他们不能解决这样一个简单的多方会议的概念。

我已经在我的网站上创build了一个多重聊天的模仿,我现在不能给你看,但基本上我每5秒钟保存一帧video,然后存储(覆盖)保存在中央文件夹中的图像。 当有人login时,他们在网上看到所有的networking摄像头(用PHP完成)。 我不知道这是否有帮助,但它的工作原理是相似的。

对于N个用户,您需要使用Kurento( http://www.kurento.org/ )等媒体stream媒体。

然后你可以build立自己的多用户webrtc解决scheme,例如: https ://webrtc-chat.com/(build立在Kurento之上)