我最近遇到了WebSockets,我对他们带来的可能性感到震惊。我搜索了这些实时(和近实时)通信协议和技术的完整列表 - 例如XMPP,WebRTC但我找不到任何接近完整的列表。所以请帮我把这个列表组合起来。
更新:我正在寻找可用于网络的实时协议。
答案 0 :(得分:16)
WebSocket是一种通过单个TCP连接提供全双工通信通道的Web技术。 WebSocket API由W3C标准化,WebSocket协议已由IETF标准化为RFC 6455。
可扩展消息传递和在线协议(XMPP)是一种基于XML(可扩展标记语言)的面向消息的中间件的通信协议。
WebRTC(Web实时通信)是由万维网联盟(W3C)起草的API定义,用于浏览器浏览应用程序,无需插件即可进行语音呼叫,视频聊天和P2P文件共享。
Bayeux是一种用于传输异步消息(主要通过HTTP)的协议,在Web服务器和Web客户端之间具有低延迟。
服务器发送事件(SSE)是服务器在客户端连接后启动到客户端的数据传输的一种方式。它用于向客户端传输连续或低延迟消息。浏览器API称为EventSource。
Wave Federation Protocol(以前称为Google Wave Federation Protocol)是一种开放协议,是Apache Wave中使用的可扩展消息传递和在线协议(XMPP)的扩展。它专为计算机支持的协同工作波服务器之间的近实时通信而设计。
Internet Relay Chat(IRC)是一种用于实时Internet文本消息(聊天)或同步会议的协议。它主要用于讨论论坛中的群组通信,称为频道,但也允许通过私人消息进行一对一的通信以及聊天和数据传输,包括文件共享。
实时发布 - 订阅(RTPS)协议旨在用于Internet协议(IP)一对多多播和无连接尽力传输,例如IP用户数据报协议(UDP)。除其他外,它为使用标准IP网络的实时应用程序提供尽力而且可靠的发布 - 订阅通信。
Socket.IO是一个流行的库,用于从浏览器进行实时通信。 Socket.IO主要使用WebSocket协议,但如果需要,可以回退多种其他方法,例如Adobe Flash套接字,JSONP轮询和AJAX长轮询,同时继续提供相同的接口。虽然它可以简单地用作WebSocket的包装器,但它提供了更多功能,包括向多个套接字广播,存储与每个客户端关联的数据以及异步I / O.