将数据库更新发送到一个或多个 Web 浏览器的可靠且快速的方法是什么?
我有一个 Postgres 数据库,其中有几个表会随着时间的推移而更新。更新范围为每秒 0 到 1000 次更新。更新表时,我希望一对多的 Web 客户端尽可能快速有效地接收更新。每次更新少于 1K。
将数据库更新发送到一个或多个 Web 浏览器的可靠且快速的方法是什么?
我有一个 Postgres 数据库,其中有几个表会随着时间的推移而更新。更新范围为每秒 0 到 1000 次更新。更新表时,我希望一对多的 Web 客户端尽可能快速有效地接收更新。每次更新少于 1K。
UDP 将是最快的,但它需要专门的客户端并且可能会发生数据丢失。
TCP/IP 保证数据完整性,这意味着您可以将 SSE 或 WebSockets 用于浏览器客户端。但是,它需要为每个客户端发送数据。
SSE 只支持文本数据并且是单向的。它还施加了其他限制,并使用了浏览器的每个域连接限制之一(浏览器通常限制为每个域 6 个 HTTP 连接)。
WebSockets 是双向的,并提供更大的灵活性。此外,它们不会减损浏览器的每个域连接限制。
就性能而言,轮询确实是一个坏主意,无论是由于开销还是冗余请求的可能性。
简短的搜索将为您提供更多信息。关于这个主题的许多问题之前已经被问过。
有关于WebSockets 与 SSE的讨论,关于轮询与 WebSockets的性能讨论以及WebSockets 世界中 AJAX 用例的概述。
这些应该让你开始。