如何在socket io中无延迟地应答两个请求

问题描述 投票:0回答:1

当我收到客户端的请求,并且我的响应是大量记录,同时另一个请求到达服务器时,第二个请求的响应会稍有延迟。事实上,socketIO 不能同时向客户端发送两个响应。有谁知道我的问题的解决方案是什么?

我收到了 sockei.on 的请求 并使用 socket.emit 发送响应 我有带有express和socket io的服务器

node.js express http promise socket.io
1个回答
0
投票

套接字消息(服务器到客户端)不是“响应”。

实时套接字编程中没有“响应”。

它们是双向命令。

仅此而已。

  1. 来自客户端的命令说“我需要最新的地图”。客户端->服务器命令可能是“need-new-map”(或者它可能只是一个数字,或者任何表示该命令的标记)。
  2. 没有“响应”,这只是来自客户端的传入命令。
  3. 您的服务器启动后台进程构建地图;举例来说,构建地图需要 100 秒。在此过程中,您记下是哪个客户(比方说,客户#11007)。
  4. 碰巧,另一个命令从客户端到达(可能是同一个客户端或不同的客户端,并不重要)
  5. 碰巧,另一个命令从客户端到达(可能是同一个客户端或不同的客户端,并不重要)
  6. 随后,(2)中提到的过程就完成了。该进程执行以下操作:(i) 检查客户端 #11007 是否仍处于连接状态。 (ii) 如果是,则向该客户端发送命令。该命令可能是“new-map”,后跟地图的二进制数据。

如果在客户端中您正在“监听响应”,则您完全误解了实时通信的基本范例。

© www.soinside.com 2019 - 2024. All rights reserved.