websocket - 有没有办法在 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 的顺序保证结果。
解决方案
我们如何在 WebSocket 中做到这一点?我们需要在应用层实现它吗?
是的,您需要在 WebSocket 之上实现此功能。或者您也许可以将 HTTP/2 与双向流一起使用?因为它已经有了这个功能。
推荐阅读
- scala - 如何将 RDD[org.apache.spark.sql.Row] 转换为 RDD[org.apache.spark.mllib.linalg.Vector]
- python - RandomizedSearchCV 并行:调度作业过多导致 NaN 丢失?
- python - open() - 打开通过 UI 与通过控制台创建的文件
- swift - 是否可以指定带有时区(即 GMT 偏移量)但没有时间的 ISO 日期?
- javascript - 如何分块js数组并在块上应用数学函数?
- javascript - 如何在 DataTable 子行中使用 jQuery 返回 div
- javascript - React setState 在变量初始化之前一直运行
- julia - 在 UBUNTU 16.04 中使用 Julia1.2 安装 MXNet.jl 时出现问题
- ansible - 仅当在 ansible 中满足 x 任务条件时才运行 yz 任务
- php - 在php中将新元素插入多维数组