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

时间:2014-02-10 21:43:05

标签: javascript node.js socket.io webrtc

我正在尝试制作支持多用户视频聊天的网络应用。香港专业教育学院读了一篇关于webrtc“关于webrtc入门”的文章 (http://www.html5rocks.com/en/tutorials/webrtc/basics/)并在codelab上做了一些演示。但我仍然不知道如何使它成为一个三方会议call.i真的不知道很多关于node.js和socket.io。刚刚开始学习它们,因为我试图建立这个视频网络应用程序。

所以我的问题是webrtc或socket.io的哪一部分确定超过2个用户可以加入呼叫?或者你们指导我的任何资源?

提前谢谢。

4 个答案:

答案 0 :(得分:6)

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

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

这里有关于网状网络http://en.wikipedia.org/wiki/Mesh_networking

的一些细节

答案 1 :(得分:4)

我想说这里有两个不同的东西。 WebRTC需要信令来建立两个节点之间的对等通信。我认为你在使用Node.js和Socket.js时走在正确的轨道上。

但不是WebRTC(或socket.io)决定第三方可以加入会议,而是决定这一点。这是信号的另一部分,与WebRTC没什么关系。

这样可以实现设置会议室,发现可用会议室,加入会议室等功能。当三部分​​会议启动并运行时,每个节点将有两个对等连接,每个节点对应一个节点。

答案 2 :(得分:0)

我也查看了那些协议,不知道node.js和sockets.io可以做什么,但我认为无论他们做什么都是一个大错误,因为你需要做的就是创建一个多用户的地方将他们的网络摄像头图像,然后每个人都可以分别访问该地点,以查看所有对话。这必须很快,因为视频不是问题但如果信号很慢那么它就不可理解了。我会尝试其他的东西。我想知道为什么他们无法解决这种简单的多会议概念。

我在我的网站上创建了一个模仿多聊天的模仿,我现在无法向您展示,但基本上我每5秒钟保存一次视频,然后存储(覆盖)保存在中央文件夹中的图像。当有人登录时,他们会在线查看所有网络摄像头(使用PHP完成)。我不知道这是否有帮助,但它有效并且类似。

答案 3 :(得分:0)

对于N个用户,您需要使用像Kurento(http://www.kurento.org/

这样的媒体流媒体

然后,您可以构建自己的多用户webrtc解决方案,例如:https://webrtc-chat.com/(建立在Kurento之上)