有哪些Web实时通信协议可用?

20

最近我了解到WebSockets,对其所带来的可能性感到震撼。我搜索了全面的实时(和准实时)通信协议和技术列表 - 例如XMPPWebRTC,但我找不到任何完整的列表。因此,请在此处帮助我组装该列表。

更新:我正在寻找适用于web的实时协议。


存在着数百(甚至可能是数千)种实时协议。您是否特别想要在Web上可用的?您可能需要在问题和标签中澄清这一点。 - kanaka
我正在寻找适用于Web的实时协议。 - Sparky
1个回答

31

WebSocket

WebSocket 是一种 Web 技术,通过单个 TCP 连接提供全双工通信通道。WebSocket API 正在由 W3C 标准化,而 WebSocket 协议已经被 IETF 标准化为RFC 6455

XMPP (Jabber)

XMPP(可扩展消息和出席协议)是一种基于 XML(可扩展标记语言)的面向消息中间件的通信协议。

WebRTC

WebRTC(Web 实时通信)是由 World Wide Web Consortium(W3C)制定的 API 定义,可使浏览器之间进行语音通话、视频聊天和 P2P 文件共享,无需插件。

Bayeux Protocol

Bayeux 是一种传输异步消息(主要通过 HTTP)的协议,用于在 Web 服务器和 Web 客户端之间实现低延迟。

Server-Sent Events

服务器发送事件(SSE)是一种让服务器在客户端连接后启动数据传输的方法,用于向客户端流式传输连续或低延迟的消息,浏览器 API 被称为 EventSource。

Wave Federation Protocol

Wave 联邦协议(前身为 Google Wave 联邦协议)是一种开放协议,它是可扩展消息和出席协议(XMPP)的扩展,用于 Apache Wave 中。它旨在实现计算机支持的协作波服务器之间的几乎实时通信。

IRC

互联网中继聊天(IRC)是一种实时的互联网文本消息传递(聊天)或同步会议的协议。它主要设计用于讨论论坛(称为频道)中的群组通信,但也允许通过私人消息进行一对一的交流以及聊天和数据传输,包括文件共享。

Real-Time Publish-Subscribe (RTPS) Protocol

实时发布-订阅(RTPS)协议设计用于与Internet Protocol(IP)一对多多播和无连接的尽力而为的传输(例如IP用户数据报协议(UDP))一起使用。它使标准IP网络能够为实时应用程序提供尽力而为和可靠的发布-订阅通信等功能。

Socket.IO

Socket.IO是一个在浏览器中进行实时通信的流行库。Socket.IO主要使用WebSocket协议,但如果需要,还可以回退到多种其他方法,例如Adobe Flash套接字、JSONP轮询和AJAX长轮询,同时继续提供相同的接口。尽管它可以仅用作WebSocket的包装器,但它提供了更多功能,包括向多个套接字广播、存储与每个客户端关联的数据以及异步I/O。


5
Socket.IO 是一个用于构建实时应用的框架,它由几种实时通信机制组成。它本身不是一种协议。 - Sparky
1
WebRTC不是一个协议,而是基于一些其他协议构建的,例如STUN、TURN,代理通过这些协议创建候选项,以及SDP,两个对等方之间进行交换,并使用一些RTC协议来交换SDP。 - Mateen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接