我一直在努力实现的网络应用程序将能够处理以下情形:流摄像头使用socket.io
- 视频流/从客户机到其他客户端(实际上是一组特定的人声音,无广播)和服务器。数据源将是客户端的网络摄像机。
- 此流数据必须实时显示在其他客户端的浏览器和上以保存在服务器端用于“归档”目的。
- 它必须在node.js + socket.io环境中实现。
把它放在一些更具体的上下文中......场景是有一个人为他选择的用户提供了一种空间。选定的用户加入房间后,创作者开始从他/她的内置设备(网络摄像头)流式传输视频/音频。所有的客人都会实时接收数据,而且数据正在被发送到服务器,并在数据流和房间关闭后进行恢复。
我在考虑将Socket.IO与WebRTC混合使用。从理论上讲,这两者的结合似乎恰恰适合这项工作。 Socket.IO非常适合通过为一个房间分配一些套接字并收集WebRTC要求的信令过程来收集特定用户集合。 与此同时,WebRTC对于聚集在同一房间中的用户之间的P2P连接来说非常棒,访问摄像头和其他可能想使用的内置设备也非常简单。
所以是的,理论上所有的东西看起来相当不错,但是我真的需要看到一些代码,所以我可以尝试自己实现它。此外,我看到一些问题:
- 如何保存由P2P连接发送的流?很显然,服务器无法访问。我在想,我可能把服务器当作另一个“客户”,所以它只是与房间创建者建立P2P连接的另一个端点。但不知何故,它感觉前卫。
- 将服务器视为创作者与客户之间的中间人不是更好吗?与P2P相比,有一点可能会延迟一些,但可能并不重要,但可能对所有客户端来说都是一样的。 (我试过,但我不能从摄像头到完成服务器的流,这不过是因为我有处理MediaStream问题,为不同的问题的话题)
我一直在寻找一些不错解决方案但没有任何成功。我已经看到,有一个很好的P2P解决方案为socket.io制作:http://socket.io/blog/socket-io-p2p/。事情是 - 我认为它不会很好地处理数据流。这些例子只提到简单的聊天应用程序,我需要一些比这更重要的东西。
我会非常感谢一些具体的例子,文档,不管怎样可能导致我更接近实施它,因为我真的不知道如何处理它。
感谢提前:)