Node Websocket:向客户端发送大型数组数据的最佳方式
Node Websocket: Best way to send large array data to clients
我有一个在 nodejs 中用 express 制作的 websocket 服务器
Websocket 文档指出 websocket.send() 可以传递字符串或数组缓冲区。现在我想通过 websocket 向客户端发送大量对象(格式化后为 200k 行)。发送此类数据的最佳方式是什么。
我试过的:我试过通过字符串化直接发送,现在完全没问题,但是延迟很长。
那么有什么方法可以在保持速度不变的情况下向客户端发送如此庞大的数组数据吗?我认为数组缓冲区可能会有所帮助,但我找不到任何建议的示例
此外,如果此问题是特定于代码的,请在评论中告诉我,以便我也可以共享代码片段。
通常套接字用于处理实时消息传递,牺牲常见的 http 功能,目标是轻便和快速。检查:
传输大量数据不利于此。检查:
- Sending large files over socket
建议 1
使用套接字来检测加密代码中某些变化的实时通知应该使用套接字。
当客户端知道(感谢套接字)有一个新的或更新的加密代码(它很大)之后,使用普通的 http 而不是套接字下载它@jfriend00也在评论里推荐
此外,如果数据很大,您应该使用一种方法来拆分数据并使用通用 http 而非套接字逐块发送。
建议 2
正如 @jfriend00 所说以及主要的文件主机服务所做的那样,实现和算法来拆分数据并将一部分一部分地发送到客户端。
如果块或部分很小,也许你可以使用 sockets 但这是一个常见的功能,所以使用已知的方式:common http
我有一个在 nodejs 中用 express 制作的 websocket 服务器
Websocket 文档指出 websocket.send() 可以传递字符串或数组缓冲区。现在我想通过 websocket 向客户端发送大量对象(格式化后为 200k 行)。发送此类数据的最佳方式是什么。
我试过的:我试过通过字符串化直接发送,现在完全没问题,但是延迟很长。
那么有什么方法可以在保持速度不变的情况下向客户端发送如此庞大的数组数据吗?我认为数组缓冲区可能会有所帮助,但我找不到任何建议的示例
此外,如果此问题是特定于代码的,请在评论中告诉我,以便我也可以共享代码片段。
通常套接字用于处理实时消息传递,牺牲常见的 http 功能,目标是轻便和快速。检查:
传输大量数据不利于此。检查:
- Sending large files over socket
建议 1
使用套接字来检测加密代码中某些变化的实时通知应该使用套接字。
当客户端知道(感谢套接字)有一个新的或更新的加密代码(它很大)之后,使用普通的 http 而不是套接字下载它@jfriend00也在评论里推荐
此外,如果数据很大,您应该使用一种方法来拆分数据并使用通用 http 而非套接字逐块发送。
建议 2
正如 @jfriend00 所说以及主要的文件主机服务所做的那样,实现和算法来拆分数据并将一部分一部分地发送到客户端。
如果块或部分很小,也许你可以使用 sockets 但这是一个常见的功能,所以使用已知的方式:common http