将数据库更新发送到一个或多个 Web 浏览器的可靠且快速的方法
Reliable and fast way to send database updates to one or more web browsers
将数据库更新发送到一个或多个网络浏览器的可靠且快速的方法是什么?
我有一个 Postgres 数据库,其中有一些 table 正在随时间更新。更新范围为每秒 0 到 1000 次更新。当 table 更新时,我希望一对多 Web 客户端尽可能快速有效地接收更新。每次更新不到1K
UDP 将是最快的,但它需要专门的客户端并且可能会发生数据丢失。
TCP/IP 保证数据完整性,这意味着您可以将 SSE 或 WebSockets 用于浏览器客户端。但是,它需要为每个客户端发送数据。
SSE只支持文本数据,而且是单向的。它还施加了其他限制并用完了浏览器的每个域连接限制之一(浏览器通常限制为每个域 6 个 HTTP 连接)。
WebSockets 是双向的,提供了更大的灵活性。此外,它们不会降低浏览器的每个域连接限制。
就性能而言,轮询确实不是一个好主意,这既是因为开销,也是因为冗余请求的可能性。
简短搜索将为您提供更多信息。之前已经问过很多关于这个主题的问题。
有关于 WebSockets vs. SSE, performance discussions about polling vs. WebSockets and an overview of use-cases for AJAX in a WebSockets world 的讨论。
这些应该可以帮助您入门。
将数据库更新发送到一个或多个网络浏览器的可靠且快速的方法是什么?
我有一个 Postgres 数据库,其中有一些 table 正在随时间更新。更新范围为每秒 0 到 1000 次更新。当 table 更新时,我希望一对多 Web 客户端尽可能快速有效地接收更新。每次更新不到1K
UDP 将是最快的,但它需要专门的客户端并且可能会发生数据丢失。
TCP/IP 保证数据完整性,这意味着您可以将 SSE 或 WebSockets 用于浏览器客户端。但是,它需要为每个客户端发送数据。
SSE只支持文本数据,而且是单向的。它还施加了其他限制并用完了浏览器的每个域连接限制之一(浏览器通常限制为每个域 6 个 HTTP 连接)。
WebSockets 是双向的,提供了更大的灵活性。此外,它们不会降低浏览器的每个域连接限制。
就性能而言,轮询确实不是一个好主意,这既是因为开销,也是因为冗余请求的可能性。
简短搜索将为您提供更多信息。之前已经问过很多关于这个主题的问题。
有关于 WebSockets vs. SSE, performance discussions about polling vs. WebSockets and an overview of use-cases for AJAX in a WebSockets world 的讨论。
这些应该可以帮助您入门。