写点什么

网易会议开源之桌面端篇

作者:网易云信
  • 2022 年 3 月 18 日
  • 本文字数:1165 字

    阅读完需:约 4 分钟

网易会议开源之桌面端篇

导读:

随着线上会议越来越普遍,各企业在这种环境下也更加重视,期望能够拥有一套自己的会议系统,方便展开工作和交流;网易云信在通信领域研发深耕 24 年,基于此能力打造了一款成熟的会议系统并将其开源,希望贡献自己的一份力量,本文将介绍下其中的桌面端。

 一、UI 如何选择

对于桌面的应用,选择的 UI 有很多,在不同的平台下都有成熟好用的框架,无论是出于快速开发、性能、视觉效果都有多种选择。

基于我们的场景,需要支持 Windows 和 macOS 系统,也就是要跨平台,跨平台方案也较多,Qt,Electron,Flutter 等都各有千秋;会议场景中的视频,作为基础核心,需要能够支持多路视频流的渲染,当然如果是高清视频会更好,因此性能也就是我们考虑中的重要一项。

为了更高的利用系统资源,希望使用本地渲染,尽可能的使用硬件加速,提高渲染效率,结合其他因素我们采用 Qt 作为我们的 UI 框架,Qt 作为老牌的跨平台 UI 框架,优缺点不言而喻,选择适合的才是最好的。

二、桌面端

(一)桌面端的框架

框架整体如下图所示:



  • App:前端使用 Qt 搭建整个应用,包括注册登录,入会等一些功能,用户可以参考相关调用接口,完全能够定制自己的 App。

  • SDK:会议组件的 UI SDK,包括会中的所有功能,也提供了对外的接口。

  • IPC:作为 App 与 SDK 之间的桥梁,负责数据的通信。此模块是通过 Socket 结合异步任务队列实现接口的调用,其中 App 作为 Server 端创建 Server,拉起 SDK 的 UI 进程并传递端口号,然后监听 Client 链接,Client 使用端口来链接 Server,与之建立键连接。下图是个大致示意图。



App 和 SDK 采用双进程的方案优点:

  • 有更好的隔离,使得 SDK 更稳定。

  • 提高系统资源利用率,避免与 SDK 宿主进程资源抢占。

(二)SDK



SDK 提供了对外的集成接口,也提供了会中的 UI 模块,用户可以基于此简单的接口,很容易完成集成。

  • UI 层:包括了会中的一些 UI 界面,比如视频视图展示,聊天展示,成员列表展示,直播,白板展示等。

  • Service 层:按照业务对业务模块的封装。

  • Control 层:对能力层模块的业务封装。

  • Base 层:能力模块,基础模块。

三、接入方式

(一) 桌面端提供了丰富的接入接口,如下所列



  • C++方式:提供了一套通用的 C++接口,可以在 Windows 和 macOS 里通过原生的方式集成。

  • Electron 方式:提供基于 JS 的接口,具有和 C++一致的接口,方便集成到 Electron 应用中。

(二)SDK 提供的接口能力

  • 根据会议的场景,提供了鉴权、账户、会中等服务,满足 App 端的能力。

(三)SDK 的优点

  • 组件化程高,接口简单稳定,能够简单快捷的接入。

  • 可定制化,UI 可通过自定义的方式,集成到自己的系统中。

四、结语

以上主要介绍了会议和组件的架构和一些业务,希望能够帮助用户理清架构和一些模块关系,了解内部实现和逻辑;当然在实际开发中,也会遇到一些关键技术点和部分模块的难点,我们也有相应的解决方案,希望在以后的篇幅中能够为您详细介绍。



发布于: 刚刚阅读数: 2
用户头像

网易云信

关注

还未添加个人签名 2021.03.12 加入

来自网易云信,专注音视频技术,全面负责网易实时音视频、互动白板、直播、互动直播、传输网等项目的架构设计与研发,对音视频、高性能服务器以及网络通讯等领域均有多年的工作与项目经验 。

评论

发布
暂无评论
网易会议开源之桌面端篇_开源_网易云信_InfoQ写作平台