【Android App】在线直播之搭建WebRTC的服务端(图文解释 简单易懂)

news2024/11/16 1:38:07

有问题或需要源码请点赞关注收藏后评论区留言私信~~~

一、WebRTC的系统架构

WebRTC(网页即时通信)是一个支持浏览器之间实时音视频对话的新型技术,WebRTC体系由应用于实时通信的编程接口和一组通信协议组成,已成为互联网流媒体通信以及协作服务的基石。WebRTC的愿景是让开发者能够基于浏览器快速开发流媒体应用,而不必要求用户下载安装任何插件,开发者也无需关注音视频数据的编解码过程,只要编写简单的JavaScript代码即可实现业务逻辑。

  WebRTC的架构如下

用于WebRTC的服务器主要有以下三种

1:网页服务器 提供浏览器观看的页面

2:信令服务器  用于响应设备发送的指令请求

3:穿透服务器  绕过NAT协议的限制 

 WebRTC的应用架构如下

二、搭建信令服务器

信令服务器的处理任务主要包括下列三类:

(1)会话控制消息

(2)交换网络信息

(3)交换媒体能力

信令服务器有好几种可选的技术方案,本次选择了SocketIO承载信令交互。 第一类任务——会话控制消息类似于传递聊天消息。 WebRTC主要关注后面两类任务:交换网络信息和交换媒体能力,这两种事件均需明确请求的目的地,也就是说,请求数据必须包含对方终端的设备标识,然后才能把WebRTC需要的相关信息送给对端。

三、搭建穿透服务器

此处有一些计算机网络相关知识 科班同学们应该比较熟悉

 

 coturn的安装配置过程

(1)安装cygwin的时候,除了Best组件之外,还要安装gcc、make、libevent-devel、libssl-devel等必需库:

(2)cygwin安装完毕,把coturn整个源码目录复制到cygwin64\home\***目录下。

(3)双击打开cygwin64终端,接着在命令行依次执行coturn的配置、编译与安装命令:

(4)进入/usr/local/etc目录,把turnserver.conf.default复制到turnserver.conf:

(5)在cygwin64终端执行下面命令启动stun服务器:

STUN服务器的验证结果

 创作不易 觉得有帮助请点赞关注收藏~~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/57729.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

(八) 共享模型之管程【ReentrantLock】

相对于 synchronized 具备如下特定: (1)可中断 (2)可以设置超市时间 (3)可以设置为公平锁 (4)支持多个条件变量 与 synchronized 一样,都支持可重入 基本语法…

回归预测 | MATLAB实现基于RF随机森林的用水量预测(多因素、多指标)

回归预测 | MATLAB实现基于RF随机森林的用水量预测(多因素、多指标) 目录 回归预测 | MATLAB实现基于RF随机森林的用水量预测(多因素、多指标)预测效果基本介绍模型原理程序设计参考资料预测效果 基本介绍 将随机森林回归原理应用到了预测领域,构建了基于随机森林的预测模型,…

Spring-Cloud-Zipkin-05

前言 1、链路追踪由来:在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的服务节点调用来协同产生最后的请求结果,每一个请求都会开成一条复杂的分布式服务调用链路,链路中的任何一环出现高延时或错误都会引导起…

一文读懂vue3和vue2的API风格对比

Vue3 组合式 API(Composition API) 主要用于在大型组件中提高代码逻辑的可复用性。 传统的组件随着业务复杂度越来越高,代码量会不断的加大,整个代码逻辑都不易阅读和理解。 Vue3 使用组合式 API 的地方为 setup。 在 setup 中…

JavaEE-多线程初阶1

✏️作者:银河罐头 📋系列专栏:JavaEE 🌲“种一棵树最好的时间是十年前,其次是现在” 目录1.认识线程1.1概念1.2多线程程序1.3创建线程2.Thread类及常见方法2.1Thread 的常见构造方法2.2 Thread 的几个常见属性2.3中断…

在本地利用服务器显卡跑代码

除了使用xshell等连接服务器以外,pycharm也可以连接服务器,在服务器上运行代码,上传下载文件等操作。 参考:https://cloud.tencent.com/developer/article/1738482 步骤如下: 1、pycharm工具栏:Tools– D…

基于51单片机的压力监测仪(MPX4115)(Proteus仿真+程序)

编号:28 基于51单片机的压力监测仪(MPX4115) 功能描述: 本设计由51单片机最小系统MPX4115压力传感器ADC0832模块液晶1602模块 1、主控制器是AT89C82单片机 2、MPX4115压力传感器采集气压力,通过ADC0832模数转换器进行A/D转换,读…

Java语言与系统设计课程实验报告

做个课设做的我人间失格,写了一晚上没保存,真是哭死 一、目的与要求 (一)、实验目的 掌握Java语言与系统设计的基本思路和方法。 利用所学的基本知识和技能,解决简单的Java语言与系统设计问题。 (二&…

挂耳式蓝牙耳机性价比推荐,几款高性能的耳机分享

无论是在日常还是运动的场景下,我们通常都会选择佩戴着耳机,让我们能够顺利过渡掉枯燥的生活,之前人们会选择入耳式的耳机,在长期佩戴过后会有不小的疾病诞生,在近些年迅速火起的骨传导耳机成为了焦点,其保…

Java线程池理解与学习

线程过多就容易引发内存溢出,因此我们有必要使用线程池的技术 线程池的好处 降低资源消耗: 通过重复利用已创建的线程降低线程创建和销毁造成的消耗 提高响应速度: 当任务到达时,任务可以不需要等待线程创建就能立即执行 提高线…

GEE:关系、条件和布尔运算

ee.Image对象具有一组用于构建决策表达式的关系、条件和布尔运算方法。这些方法可以用来掩膜、绘制分类地图和重新赋值。 本文记录了在GEE(Google Earth Engine)平台上的关系运算符和布尔运算符,分别应用到了三个不用的场景(筛选低…

【坚持不懈的每日一题——力扣篇】1796. 字符串中第二大的数字(简单)+set 用法复习

GitHub同步更新(已分类):Data_Structure_And_Algorithm-Review 公众号:URLeisure 的复习仓库 公众号二维码见文末 以下是本篇文章正文内容,下面案例可供参考。 一、题目描述 力扣今天推的每日一题是道简单题&#x…

[附源码]计算机毕业设计心理健康系统Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

读写锁三种关系的证明(读者和读者互补影响、写者和写者互斥、读者和写者互斥)

目录 1、读者和读者互不影响 2、写者和写者互斥 3、读者和写者互斥 (1) 读者持有锁 (2) 写者持有锁 1、读者和读者互不影响 假设现在只有读者线程&#xff0c;我们让一个读者线程申请锁以后&#xff0c;但是不释放读写锁。 #include <stdio.h> #include <unist…

[附源码]JAVA毕业设计计算机专业在线学习评估软件-演示录像-(系统+LW)

[附源码]JAVA毕业设计计算机专业在线学习评估软件-演示录像-&#xff08;系统LW&#xff09; 目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&…

HTML小游戏15 —— 网页版3D反恐英雄(附完整源码)

&#x1f482; 网站推荐:【神级源码资源网】【摸鱼小游戏】&#x1f91f; 前端学习课程&#xff1a;&#x1f449;【28个案例趣学前端】【400个JS面试题】&#x1f485; 想寻找共同学习交流、摸鱼划水的小伙伴&#xff0c;请点击【摸鱼学习交流群】&#x1f4ac; 免费且实用的计…

[附源码]Python计算机毕业设计Django教学辅助系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

2022年各大企业java面试题解析,堪称全网最详细的java面试指南

前言 最近感慨面试难的人越来越多了&#xff0c;一方面是市场环境&#xff0c;更重要的一方面是企业对Java的人才要求越来越高了。 ​基本上这样感慨的分为两类人&#xff0c;第一&#xff0c;虽然挂着3、5年经验&#xff0c;但肚子里货少&#xff0c;也没啥拿得出手的项目&am…

膜拜,终于拿到了美团大佬分享的Netty源码剖析与应用PDF

前言 时间飞逝&#xff0c;转眼间毕业七年多&#xff0c;从事 Java 开发也六年了。我在想&#xff0c;也是时候将自己的 Java 整理成一套体系。 这一次的知识体系面试题涉及到 Java 知识部分、性能优化、微服务、并发编程、开源框架、分布式等多个方面的知识点。 写这一套 Ja…

机器学习笔记之受限玻尔兹曼机(二)模型表示

机器学习笔记之受限玻尔兹曼机——模型表示引言回顾&#xff1a;玻尔兹曼分布玻尔兹曼机关于玻尔兹曼机的问题受限玻尔兹曼机受限玻尔兹曼机的学习任务(填坑)引言 上一节基于马尔可夫随机场介绍了玻尔兹曼分布&#xff0c;本节将介绍受限玻尔兹曼机的模型表示(Representation)…