即时通讯开发之WebRTC服务器是如何联接通话的
通过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服务器是如何联接通话的相关推荐
- 浅析即时通讯开发之Android端加密算法
即时通讯是互联网的重要应用形态之一,安全性一直是开发者需要优先考虑的基础问题,并不是使用了加密就绝对安全了,如果加密函数使用不正确,加密数据很容易受到逆向破解攻击.如何正确地理解和使用加密技术则显的尤 ...
- 即时通讯开发之MobileIMSDK-Web介绍
MobileIMSDK-Web是一套纯JS编写的Web端即时通讯框架(含服务端): 1)超轻量级.极少依赖: 2)纯JS编写.高度提炼,简单易用: 3)基于流行的socket.io网络 ...
- android asmack和xmpp的关系,Android即时通讯开发之XMPP (一)初识XMPP协议和asmack
XMPP 消息格式 Jabber/XMPP 系统使用 XML 流在不同实体之间相互传输数据.在两个实体的连接期间,XML 流将从一个实体传送到另一个实体.在实体间,有三个顶层的 XML 元素: ,和. ...
- Android smack+ejabberd+spack 实现即时通讯(一)服务器搭建
今天写一下即时通ejaberd服务器的搭建 由于我们使用的Openfire有时会出现接受不到消息所以经理让改为ejaberd Ejabberd 服务器安装过程: 1.首先去ejabberd官网下载安装 ...
- WebRTC开发之webrtc/depot_tools/gn: line 8: exec: python: not found
最近更新了Mac系统macOS Monterey和最新的Xcode13.3,然后发现webrtc无法编译了,出现了如下问题: 于是根据图片问题提示,打开gn文件,发现写的是"python&q ...
- 私有化部署的即时通讯平台,为企业移动业务安全保驾护航
随着5G移动互联.云计算和大数据等新兴技术的运用,企业信息化快速地发展,使得政企内部存储的数据信息在网上被传播.利用和共享,数字信息的应用大大提高了政企有用信息的利用效率.但随着数字化转型的深入推进, ...
- ios即时通讯客户端开发之-mac上搭建openfire服务器
CHENYILONG Blog ios即时通讯客户端开发之-mac上搭建openfire服务器 转自:月光的尽头 ios即时通讯客户端开发之-mac上搭建openfire服务器 一.下载并安装open ...
- 即时通讯开发之网页端实时音视频技术WebRTC
WebRTC,名称源自网页实时通信(Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音通话或视频聊天的技术,是谷歌2010年以6820万美元收购Globa ...
- bpmn 文件 服务器部署,Liferay7 BPM门户开发之45: 集成Activiti文件上传部署流程BPMN模型...
开发文件上传,部署流程模板. 首先,开发jsp页面,deploy.jsp ${RETURN_MESSAGE} 其中,上传form的action为portlet:actionURL,它的name就是在p ...
最新文章
- php博客浏览人数,在博客中实现浏览次数的统计
- mongodb集合的增删
- linux sed 批量替换多个文件中的字符串
- Seata RPC 模块的重构之路
- Java Number Math 类
- 可能用得上的jquery 插件
- (王道408考研数据结构)第二章线性表-第三节5:顺序表和链表的比较
- hdu6110:路径交
- extjs2.0 ie8 下拉树_extjs2下拉树选项框comboxWithTree(支持异步加载子节点)
- 网络暴利行业,天龙私服赚千万是不是梦想?
- ActiveMQ反序列化漏洞CVE-2015-5254复现
- 购买的Microsoft Office不小心卸载后重新安装方法
- 竞赛 | 中国健康信息处理大会(CHIP2022)发布评测任务
- 洛谷3379-LCA-C++-(LCA+倍增)
- unity建立项目崩溃:failed to decompress
- win2003 64位 企业版 (win 2003_r2_enterprise_x64.iso)下载地址
- 企业微信朋友圈和个人微信朋友圈有哪些区别?
- no-repeat失效
- JS操作excel文件
- Cocos2D开发的iPhone游戏的教程