我正在探索使用 webRTC、HTML5、socket.io 和 node.js 构建前沿白板应用程序(很像 Big Blue Button 或 Wimba)的选项。这将用于一对一的通信......一次不超过两个用户相互通信。
我想使用数据通道在客户端之间传递白板数据,然后在服务器端有某种监听器来记录视频/音频/白板操作。服务器监听器实际上会窃听白板/音频/视频聊天。换句话说,如果服务器到客户端的连接出现延迟,也不会影响 P2P(客户端到客户端)webRTC 连接的质量。这样服务器就可以以较低的优先级记录白板交互,从而使一对一的聊天交互尽可能高速。
是否有我应该了解的适合共享白板的库或 JavaScript 框架?
最佳答案
免责声明:此答案已过时,请参阅this answer关于如何完成这样的事情。
<小时/>WebRTC 仍然很新,支持也仍然有点不稳定。不用说,不存在为您做此类事情的库或框架。
您可能想要做的是使用 WebSockets(以及您已经在使用的 socket.io)将一些数据从客户端发送到服务器,并同时通过 WebRTC 发送数据。
您可以check how fast the connection is (通过示例上传和示例下载)并决定您要使用哪种策略:
- 使用 WebRTC 不记录任何内容,或者仅在客户端记录并在完成后上传到服务器
- 同时使用 WebRTC 和 WebSockets,仅使用 WebSockets 将“一些”数据传输到服务器,其中“一些”数据取决于连接可以容纳的内容。
- 仅使用 WebSocket 并将所有数据传输到服务器,不涉及 P2P。
我认为最可行的选择是第一个和第二个。
这也很大程度上取决于白板的实现,如果您只传递白板上绘制的矢量数据,即使 AJAX 也可以处理负载,但是,如果您传递实时视频,我想什么也没有WebRTC 将有效地处理负载。
祝你好运!这听起来是一个有趣的想法。我希望我能够在几个月内编辑这个答案,并提供一长串库和框架,让您轻松做到这一点。
关于javascript - webRTC HTML5 白板/视频聊天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15724806/