websocket复用扩展的用途和目的

Posted

技术标签:

【中文标题】websocket复用扩展的用途和目的【英文标题】:use and purpose of websocket multiplexing extension 【发布时间】:2013-01-05 05:13:02 【问题描述】:

我试图了解 websocket 多路复用扩展的目的,文档所述的主要目的是使用与服务器的单个同源物理 websocket 连接,而每个浏览器选项卡都使用在物理连接之上多路复用的逻辑连接。我看到今天我们可以使用另一种替代方法来完成此行为,该方法是启动一个共享的 Web Worker,它打开 websocket 连接并让每个浏览器选项卡向/从该 Worker 发送和接收消息。我还没有尝试过,我想知道这是否可行。

【问题讨论】:

【参考方案1】:

您的问题反映了对 WebSocket Multiplexing Extension 试图解决的问题的误解。

base WebSocket 规范 (RFC 6455) 定义了一种通过 TCP/IP 进行双向数据交换的协议。 WebSocket 以正常的 HTTP 请求/响应开始。在此交换中,客户端和服务器协商切换到 WebSocket 协议。切换后,客户端和服务器通过 TCP/IP 连接交换数据帧。这在客户端和服务器之间创建了一个双向数据流。

基本协议的一个缺点是它仅支持在每个方向上流动的单个数据流。 多路复用扩展通过允许客户端和服务器在同一个 TCP/IP 连接上创建多个“通道”来增强基本协议。

所以多路复用扩展的目的是允许多个 WebSocket 通道在同一个 TCP/IP 连接上运行。就是这样。

让多个浏览器选项卡(或网络工作者)共享一个 TCP/IP 连接只是一个示例,说明了如何可能使用多路复用 websocket。在标准术语中,它只是“信息性”(描述性),而不是“规范性”(规范的必需部分)。

【讨论】:

以上是关于websocket复用扩展的用途和目的的主要内容,如果未能解决你的问题,请参考以下文章

webSocket 简单介绍

docker上带有javascript和nginx的websockets

使用WebSocket实现聊天室

使用WebSocket实现聊天室

Python在tkinter中发送websocket消息

(转)WebSocket学习