WebRTC (Web Real-Time Communications) 是一项实时通讯技术,它允许网络应用或者站点,在不借助中间媒介的情况下,建立浏览器之间点对点(Peer-to-Peer)的连接,实现视频流和(或)音频流或者其他任意数据的传输。WebRTC包含的这些标准使用户在无需安装任何插件或者第三方的软件的情况下,创建点对点(Peer-to-Peer)的数据分享和电话会议成为可能。
WebRTC包含了若干相互关联的API和协议以达到这个目标。你在这里看到的文档将会帮助你理解WebRTC的基本概念,还会教你如何去建立和使用可以传输媒体数据和其他任意数据的连接。当然你还会学到更多其他的东西。
参考
指南
- WebRTC 架构概述
- 用来创建WebRTC连接的API底层使用了一系列的网络协议和连接标准。这篇文章涵盖了这些标准。
- WebRTC 基础
- 这篇文建将带你贯穿一个跨浏览器RTC应用的整个创建过程。结束的时候,你将拥有一个可以运行的点对点(peer-to-peer)数据通道(data channel)和媒体通道(media channel)。
- WebRTC 协议
- 这篇文章介绍了一系列的协议,WebRTC API就是建立于他们之上。
- WebRTC 连接
- 这篇文章将向你介绍为创建点对点的连接并且实现数据或/和媒体的传输,各个WebRTC相关的协议是如何相互协作的。
- WebRTC API 概览
- WebRTC包含了一些关联的API和协议,它们相互协作以支持数据或媒体在两个或多个点之间传输。这篇文章将向你展示这些API的简要介绍以及它们的用途。
- WebRTC 会话的生命周期
- WebRTC让你可以在基于浏览器应用中实现任意点对点(peer-to-peer)的数据、音频、视频 或它们的任意组合的通信。在这篇文章中我们一起来看一下WebRTC的生命周期。从建立连接开始,一直到不再需要的时候将它关闭掉。
教程
- 使用WebRTC adapter.js提高应用的兼容性
- WebRTC组织在GitHub上提供了WebRTC适配器,来解决因不同浏览器对WebRTC实现不同导致的问题。adapter.js是一个JavaScript库,可以让你写的WebRTC应用“一处编写,处处运行”。
- 使用WebRTC拍摄静止的照片
- 这篇文章介绍了如何在WebRTC的支持下可以访问到电脑或者手机的摄像头并且使用它来拍摄照片。
- 一个简易RTCDataChannel的例子
RTCDataChannel
接口是一个特性,使用它你可以在两个点之间发送和接收任意数据。它的API和WebSocket API非常相似,所以同样的代码对他们来说都可以使用。
资源
协议
WebRTC-proper protocols
- Application Layer Protocol Negotiation for Web Real-Time Communications
- WebRTC Audio Codec and Processing Requirements
- RTCWeb Data Channels
- RTCWeb Data Channel Protocol
- Web Real-Time Communication (WebRTC): Media Transport and Use of RTP
- WebRTC Security Architecture
- Transports for RTCWEB
相关的支持协议
- Interactive Connectivity Establishment (ICE): A Protocol for Network Address Translator (NAT) Traversal for Offer/Answer Protocol
- Session Traversal Utilities for NAT (STUN)
- URI Scheme for the Session Traversal Utilities for NAT (STUN) Protocol
- Traversal Using Relays around NAT (TURN) Uniform Resource Identifiers
- An Offer/Answer Model with Session Description Protocol (SDP)
- Session Traversal Utilities for NAT (STUN) Extension for Third Party Authorization
规范
标准 | 状态 | 说明 |
---|---|---|
WebRTC 1.0: Real-time Communication Between Browsers | Working Draft | WebRTC API 的初始定义 |
Media Capture and Streams | Editor's Draft |
传输媒体内容流的对象的初始定义 |
Media Capture from DOM Elements | Editor's Draft |
如何从DOM标签的内容中获取流的初始定义 |