zoukankan      html  css  js  c++  java
  • 企业视频远程办公音视频会议通话系统EasyRTC-SFU后台管理程序Go语言开发设计思路

    近期我们的EasyRTC进行了新的版本修正,开发了MCU版本和SFU版本(MCU与SFU方案的区别是什么),小规模企业用户可选MCU方案,大型会议现场可选SFU方案。在EasyRTC-SFU软件中,后台管理程序使用 Go 语言开发。具体架构图设计如下:

    基本分为三层设计,下面就这三层各模块做下说明。

    1、路由层

    首先最上层为路由层,主要分为两个模块,一个是 app 模块,一个是 routers 模块。

    • app 模块主要管理整个应用程序的各种配置、数据模型和初始化数据库等工作。
    • routers 模块中定义了对外暴露的路由接口,提供 RESTful 接口。

    2、服务层

    程序的第二层中主要模块为 server 模块。server 模块为服务模块,主要进行逻辑处理,比如收到 routers 中对应的路由请求后,在 server 模块进行各种逻辑处理。比如调用 db 模块创建数据,删除数据,查询数据等,并将对应的结果返回给上层使用。

    3、处理层

    最后一层为数据处理层,主要模块为 db 模块,在此模块中封装对常见数据库的支持。比如sqlites3、mysql和postgres。

    在代码实现中,各模块及说明如下:

    util: 封装常用的工具方法,如日志和哈希算法处理等。
    config.toml: 配置文件。
    Dockerfile: docker 相关编译。
    easyrtc.db: 测试时使用的 sqlite3 数据库,会自动生成。
    easyrtc.log: 日志,自动生成。
    main.go: 程序入口文件。

    EasyRTC-SFU最终实现:

    SFU不对音视频进行混流,收到某个终端共享的音视频流后,就直接将该音视频流转发给房间内的其他终端。EasyRTC-SFU版使用该方案能够对CPU资源实现低消耗,且有很大的灵活性,能够更好地适应不同的网络状况和终端类型。如若想了解更多内容,欢迎访问EasyRTC-MCUEasyRTC-SFU,也可以随时咨询我们。

     
  • 相关阅读:
    SRM 594 DIV 2
    python 算法
    virtualenv和virtualenvwrapper介绍、安装和使用
    Django自带的ORM如何执行group by(聚合查询)语句(求和、累积、平均)
    Django REST FrameWork中文教程4:验证和权限
    Django REST FrameWork中文教程3:基于类的视图
    Django REST FrameWork中文教程2:请求和响应
    Django REST framework 中文教程1:序列化
    MySQL基础-存储过程和函数
    MySQL基础-变量
  • 原文地址:https://www.cnblogs.com/EasyNVR/p/13672182.html
Copyright © 2011-2022 走看看