首页 > 解决方案 > 有没有办法在 WebSocket 中支持多路复用?类似于 http/2 中的流 id

问题描述

WebSocket 和 http/2 一样是双向全双工的。因此,客户端可以同时发出多个请求。

http/2中有关于stream id的概念,支持多个请求可以被服务器以乱序的方式交错处理。例如,客户端可以发送多个请求 r1、r2 和 r3,它们的流 id 分别为 1,3 和 5。然后服务器可以处理它们并在服务器完成客户端请求时做出响应。让我们假设在这种情况下,r2、r3 和 r1。因此,客户端可能会按 r2、r3 和 r1 的顺序接收结果。客户端可以通过stream id来区分请求的结果。

我们如何在 WebSocket 中做到这一点?我们需要在应用层实现它吗?像在 WebSocket 有效负载中包含流 id 之类的东西?或 服务器应按 r1、r2 和 r3 的顺序保证结果。

标签: websockethttp2

解决方案


我们如何在 WebSocket 中做到这一点?我们需要在应用层实现它吗?

是的,您需要在 WebSocket 之上实现此功能。或者您也许可以将 HTTP/2 与双向流一起使用?因为它已经有了这个功能。


推荐阅读