复杂局域网环境下视频电话稳定性的解决方案
创作时间:
作者:
@小白创作中心
复杂局域网环境下视频电话稳定性的解决方案
引用
1
来源
1.
https://learnku.com/articles/89202
在复杂局域网环境下,如何保证视频电话功能的稳定使用?本文提出了一种基于GRPC协议的主从网关架构方案,通过自动发现机制和音视频流调度,有效解决了传统Websocket和MQTT方案在长时间运行时的连接稳定性问题。
原方案采用webrtc + websocket + mqtt的nodejs架构,但在不稳定的网络环境下,websocket和mqtt等长链接协议在程序超长时间运行后会出现无法重连、甚至在连接情况下也无法通信的情况。往往需要人为处理才能恢复视频电话的正常使用,例如调整防火墙规则或处理网络故障等。
一主多从 网关架构方案
采用GRPC协议实现设备间通信:在局域网内所有设备的IP信息都是固定的情况下,采用双向通信的GRPC协议可以有效避免websocket等长链接协议在超长时间运行时的糟糕表现。虽然websocket是实现聊天室的常用方案,但在需要主动双向通信的场景下,GRPC是更好的选择。开发方面采用gomoble开发和生成安卓SDK的方式,虽然性能上会有部分损失,但golang的跨平台特性可以更好地开发其他平台工具来负责监控、测试和后期的运维。同时,简单的语法可以更方便地完成更高的单元测试覆盖,保证后续程序可以稳定的快速更新迭代。
主节点功能实现:主节点需要实现自动发现、网关信息储存、webrtc音视频流调度等功能。自动发现可以避免每次新增、更换节点时都需要人工设置网关节点信息。
通话流程管理:
- 当某一网关节点发起通话申请到主节点时,主节点收到申请将会通知所有需要通话的节点打开APP接听界面,建立webrtc连接并发生音视频流到主节点。
- 另一端的网关节点接听发送接听申请到主节点,主节点收到申请将会把通话双方的音视频流分别发送给对方,网关节点收到对方的音视频流之后就可以打开通话界面开始通话了。
- 挂断通话按接听情况可以分为未接挂断、接听挂断,未接挂断按挂断方式又可以分为手动挂断、自动挂断,如果是多人同时通话又有单次挂断、全部挂断。
gomoble技术选型
gomoble是一个用于生成跨平台SDK的工具,可以帮助开发者快速生成适用于不同平台的SDK,从而实现一次开发、多平台部署的目标。在本方案中,使用gomoble可以方便地生成安卓SDK,同时也可以为后续的监控、测试和运维开发其他平台的工具。
本作品采用《CC 协议》,转载必须注明作者和本文链接。
热门推荐
皇家马德里:欧洲足球文化的璀璨明珠
低钠血症预防指南:从病因分析到生活管理
低钠血症诊疗新标准:中国专家共识发布
新国标提升防火门安全性能,这些使用要点需谨记
防火门完全指南:分类、选购要点及品牌推荐
防火门安全检查发现隐患,专家提醒:这些细节关乎生命
冬至探秘洛阳老君山:道教文化与自然风光的完美融合
老君山玻璃栈道:道教圣地的极限挑战
老君庙探秘:老君山上的神秘古建
老君山雪景打卡:金顶亮灯美爆朋友圈
战功赫赫平倭寇,文韬武略著兵书:一代名将戚继光
最新农村社保补缴政策:58岁仍可参保,土地房屋纠纷这样解决
亚历山大大帝的不败神话:从胜利到争议的全面解读
建筑设计视角下的光伏集成:三大问题与解决方案
垂直轴风力发电机:复杂环境下更稳定高效的风电解决方案
根际菌群助力植物抵御农药伤害,农科院研究揭示新机制
书圣故里将添新地标:王羲之纪念馆即将动工
第31个全国碘缺乏病日:食盐加碘是科学补碘最佳途径
《马太福音》教你过一个有意义的圣诞节
马太福音里的“义人”竟是隐藏高手?
Nature发文:中科院研制成功超高集成度光学卷积处理器
E-Mark认证:保障行车安全的国际通行证
汽车前照灯E-mark认证全流程指南:从申请到获证
医保卡买保健品攻略:适用范围、选购要点全解析
白灼甜豆:简单几步做出低脂美味
江西彩礼居高不下,地方政府出台政策引导婚俗改革
彩礼的前世今生:六礼制度的传承与革新
天价彩礼之困:从唐朝限额看现代婚姻异化
2025年除夕:时间安排、传统习俗与现代新变
360手机忘记密码怎么办?多种实用解决方案