导读:

随着线上会议越来越遍及,各企业在这种环境下也愈加注重,期望可以具有一套自己的会议体系,便利展开工作和交流;网易云信在通讯领域研制深耕 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可经过自定义的方法,集成到自己的体系中。

四、结语

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