通过WebRTC的端到端通信通常被人们所误解。WebRTC并不是真正意味着你不需要服务器来协商和联接通话。它只意味着,在多数情况中,你可以直接地在浏览器之间进行通信。

WebRTC,名称源自网页实时通信(Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音通话或视频聊天的技术,是谷歌2010年以6820万美元收购Global IP Solutions公司而获得的一项技术。

WebRTC提供了实时音视频的核心技术,包括音视频的采集、编解码、网络传输、显示等功能,并且还支持跨平台:windows,linux,mac,android。

虽然WebRTC的目标是实现跨平台的Web端实时音视频通讯,但因为核心层代码的Native、高品质和内聚性,开发者很容易进行除Web平台外的移殖和应用。很长一段时间内WebRTC是业界能免费得到的唯一高品质实时音视频通讯技术。

要想让任何WebRTC服务正常的工作,你需要如下几条后端服务器:

1. 信令服务器:
对于联接浏览器之前的对话来说,最重要的就是某种中介器—一个了解通话双方端点的服务器。这就是信令服务器,负责协商会话,而且可能是最接近WebRTC服务器的东西了。即时通讯聊天软件app开发可以加蔚可云的v:weikeyun24咨询

通常,这个服务器也会穿过会话发送相关数据。信令服务器可以实施像SIP或XMPP的标准化协议,或者私有协议。有时,信令内容也会作为Web服务器的一部分来操作网页。其他情况中,信令服务器就专门用来处理信令了。

2. TURN和STUN服务器:
当通话两端端点都检测到了对方的时候,他们会尝试着在其之间建立直接联接—有时候会有用,但也有不起作用的时候。

当没有用的时候,是因为在通信通道上的网络地址转换或者防火墙机制,要么掩盖了浏览器的地址,将其从私人IP地址转换到公共地址,要么它们认为这个会话是不安全的,以至于它们会阻拦流入的数据流并且不允许通话的进行。

为了克服这些问题,WebRTC使用了STUN和TURN,它们是要求服务器构件来协助协商媒体传输的协议,而且有时将所有的媒体都中继给TURN服务器。

3. 媒体服务器:
甚至在协商信令以及联通媒体之后,我们可能还想要在服务端处理媒体。这种功能是需要有的,因为这样用户就可以实施一个有着大量参与者的会话,并且记录存档会话或会话到其他类型的网络协议的网关。在这些情况中,我们就会用到后端的媒体服务器。

根据使用情况,上面所介绍的每种服务器都可以被认为是WebRTC服务器或者是与WebRTC服务器相关。在大多情况中,通常是将信令服务器视为WebRTC服务器的。

即时通讯开发之WebRTC服务器是如何联接通话的相关推荐

  1. 浅析即时通讯开发之Android端加密算法

    即时通讯是互联网的重要应用形态之一,安全性一直是开发者需要优先考虑的基础问题,并不是使用了加密就绝对安全了,如果加密函数使用不正确,加密数据很容易受到逆向破解攻击.如何正确地理解和使用加密技术则显的尤 ...

  2. 即时通讯开发之MobileIMSDK-Web介绍

    MobileIMSDK-Web是一套纯JS编写的Web端即时通讯框架(含服务端): 1)超轻量级.极少依赖:     2)纯JS编写.高度提炼,简单易用:     3)基于流行的socket.io网络 ...

  3. android asmack和xmpp的关系,Android即时通讯开发之XMPP (一)初识XMPP协议和asmack

    XMPP 消息格式 Jabber/XMPP 系统使用 XML 流在不同实体之间相互传输数据.在两个实体的连接期间,XML 流将从一个实体传送到另一个实体.在实体间,有三个顶层的 XML 元素: ,和. ...

  4. Android smack+ejabberd+spack 实现即时通讯(一)服务器搭建

    今天写一下即时通ejaberd服务器的搭建 由于我们使用的Openfire有时会出现接受不到消息所以经理让改为ejaberd Ejabberd 服务器安装过程: 1.首先去ejabberd官网下载安装 ...

  5. WebRTC开发之webrtc/depot_tools/gn: line 8: exec: python: not found

    最近更新了Mac系统macOS Monterey和最新的Xcode13.3,然后发现webrtc无法编译了,出现了如下问题: 于是根据图片问题提示,打开gn文件,发现写的是"python&q ...

  6. 私有化部署的即时通讯平台,为企业移动业务安全保驾护航

    随着5G移动互联.云计算和大数据等新兴技术的运用,企业信息化快速地发展,使得政企内部存储的数据信息在网上被传播.利用和共享,数字信息的应用大大提高了政企有用信息的利用效率.但随着数字化转型的深入推进, ...

  7. ios即时通讯客户端开发之-mac上搭建openfire服务器

    CHENYILONG Blog ios即时通讯客户端开发之-mac上搭建openfire服务器 转自:月光的尽头 ios即时通讯客户端开发之-mac上搭建openfire服务器 一.下载并安装open ...

  8. 即时通讯开发之网页端实时音视频技术WebRTC

    WebRTC,名称源自网页实时通信(Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音通话或视频聊天的技术,是谷歌2010年以6820万美元收购Globa ...

  9. bpmn 文件 服务器部署,Liferay7 BPM门户开发之45: 集成Activiti文件上传部署流程BPMN模型...

    开发文件上传,部署流程模板. 首先,开发jsp页面,deploy.jsp ${RETURN_MESSAGE} 其中,上传form的action为portlet:actionURL,它的name就是在p ...

最新文章

  1. php博客浏览人数,在博客中实现浏览次数的统计
  2. mongodb集合的增删
  3. linux sed 批量替换多个文件中的字符串
  4. Seata RPC 模块的重构之路
  5. Java Number Math 类
  6. 可能用得上的jquery 插件
  7. (王道408考研数据结构)第二章线性表-第三节5:顺序表和链表的比较
  8. hdu6110:路径交
  9. extjs2.0 ie8 下拉树_extjs2下拉树选项框comboxWithTree(支持异步加载子节点)
  10. 网络暴利行业,天龙私服赚千万是不是梦想?
  11. ActiveMQ反序列化漏洞CVE-2015-5254复现
  12. 购买的Microsoft Office不小心卸载后重新安装方法
  13. 竞赛 | 中国健康信息处理大会(CHIP2022)发布评测任务
  14. 洛谷3379-LCA-C++-(LCA+倍增)
  15. unity建立项目崩溃:failed to decompress
  16. win2003 64位 企业版 (win 2003_r2_enterprise_x64.iso)下载地址
  17. 企业微信朋友圈和个人微信朋友圈有哪些区别?
  18. no-repeat失效
  19. JS操作excel文件
  20. Cocos2D开发的iPhone游戏的教程

热门文章

  1. 无法访问指定计算机,windows无法访问指定设备如何解决
  2. Keras 和 Tensorflow 框架下五种视频分类
  3. 二维几何变换java代码_基于Batik的SVG应用: 关于几何变换
  4. ASUS WIN7 DRIVER
  5. License Manager 10.3启动失败解决方法
  6. sql-年度销售总额,拓展出对照表,排序表 ,日期排序表,日历表
  7. 玩机搞机----安卓全机型修改 开机动画 步骤教程
  8. python学习——图形界面
  9. C#窗体应用 socket通信(一)
  10. unity从服务器下载资源并且保存到本地