如何设计一个多平台的视频会议/聊天应用程序?

Posted

技术标签:

【中文标题】如何设计一个多平台的视频会议/聊天应用程序?【英文标题】:How to design a multi platform video conference/chat app? 【发布时间】:2020-08-06 15:30:36 【问题描述】:

我是一名仍在学习的开发人员。我想设计一个可以允许多人同时进行视频会议/聊天的应用程序,例如 zoom 。我知道我可以设计特定于 androidios 的原生应用程序,但我仍在学习 Android 开发并且对 iOS 代码一无所知。我搜索并发现我们可以拥有具有 React、Node.js 或 Angular 的混合应用程序。 js,它们在不同的平台上工作。但由于我是新手,我需要建议和指导。我对我的应用程序的期望如下:

应该支持所有视频分辨率和音频质量,应该 在低网络和高网络场景中工作 电源/处理器的使用率应该很低 不应有任何外部硬件依赖性 应该适用于任何设备 在会议期间应该有聊天选项,即使是多人 人际会议 应该有登录和非登录选项来加入 会议 可以是基于浏览器和/或应用程序的界面 应该有加密的网络通信 应该有音频/视频录制功能 应具有屏幕/文件共享功能 应该允许音频在聊天期间关闭字幕 (多语言) 应该有能力承载多个并发 每个会议有多个参与者的会议 我知道涉及我讨论的所有内容是一项乏味的任务,但我需要指导如何做到这一点。

我已经告诉了我的期望,所以现在我想知道我需要执行哪些步骤,如何开始以及从哪里开始,我应该选择什么语言/库,是否有一个混合应用程序是个好主意还是我应该选择原生应用程序。正如我之前所说的,我是一个学习者,所以我将学习每件事来完成我的项目,所以无论是反应、节点还是角度,还是任何有经验的开发人员都会建议/指导在这里。我知道我的问题可能看起来很宽泛甚至模糊,但我仍然在问只是因为我将堆栈溢出视为一群支持的有成就的编码人员。希望你们能帮助我完成我的项目。谢谢!

【问题讨论】:

您想从头开始构建一切,还是可以使用现有供应商? @JiteshShivnani 我更喜欢从头开始,剩下的我知道有一个叫做 webRTC 的东西。 【参考方案1】:

好的,那么你有很多工作要做。我将为您指出一些参考资料,它们应该会给您一个良好的开端。我会尽量保持简短。

正如您所提到的,WebRTC 是要走的路。

使用 WebRTC,您可以将实时通信功能添加到您的 在开放标准之上运行的应用程序。它支持视频, 语音和通用数据在对等点之间发送,允许开发人员 构建强大的语音和视频通信解决方案。这 技术适用于所有现代浏览器以及原生浏览器 所有主要平台的客户端。

本博客详细解释了 WebRTC 的功能 - https://medium.com/@anto.christo.20/understanding-web-real-time-communication-webrtc-d4cec5a43f2f

这篇博客解释了如何在 android 中构建 peer2peer 视频通话 - https://medium.com/@anto.christo.20/understanding-web-real-time-communication-webrtc-d4cec5a43f2f

https://webrtc.org/ 还包含大量入门资料,包括示例代码。

完成此操作后,您可以在其上添加其他功能。

现在,这将处理 peer2peer,但是如果您想从头开始构建多用户功能,则需要一些额外的工作,如答案中所述 - how to build multi-user video chatting web app using webRTC, node.js and socket.io

【讨论】:

以上是关于如何设计一个多平台的视频会议/聊天应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

nodejs+websocket制作聊天室视频教程

使用 Quickblox 进行跨平台视频聊天

用Delphi开发视频聊天软件(三)

IM即时通讯:如何跳出传统思维来设计聊天室架构?

Flutter 实战-快速实现音视频通话应用

VUE实现Web端多人语音视频聊天