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



>im 尝试制作支持多用户视频聊天的 Web 应用程序。 我读了一篇关于WebRTC的文章,关于"开始使用WebRTC"(http://www.html5rocks.com/en/tutorials/webrtc/basics/)并在Codelab上做了一些演示。但我仍然不知道如何使其成为 3 方会议呼叫。我对 Node.js 和 socket.io 了解不多。刚刚开始学习它们,因为我试图构建这个视频网络应用程序。

所以我的问题是WebRTC或 socket.io 的哪一部分决定了超过2个用户可以加入通话? 或者你们引导我访问的任何资源?

提前谢谢。

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

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

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

我想说这里有两件独立的事情。WebRTC需要信令来设置两个节点之间的点对点通信。我认为您在使用 Node.js 和 Socket.js 时走在正确的轨道上。

但决定第三方是否可以加入会议的不是WebRTC(或 socket.io),而是你决定这一点。这是与WebRTC无关的信令的另一部分。

这意味着您可以实现设置会议室、发现可用会议室、加入会议室等功能。当三部分会议启动并运行时,每个节点将有两个对等连接,每个节点连接到其他节点。

对于 N 个用户,您需要使用像 Kurento (http://www.kurento.org/) 这样的媒体流

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

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

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

相关内容

最新更新