将数据库更新发送到一个或多个Web浏览器的可靠且快速的方法

时间:2018-04-21 05:36:01

标签: web browser websocket long-polling ajax-polling

将数据库更新发送到一个或多个Web浏览器的可靠且快速的方法是什么?

我有一个Postgres数据库,其中有几个表随着时间的推移而更新。更新范围为每秒0到1000次更新。当表更新时,我希望一对多的Web客户端尽可能快速有效地接收更新。更新每个不到1K。

1 个答案:

答案 0 :(得分:1)

UDP将是最快的,但它需要专用客户端,并且可能会发生数据丢失。

TCP / IP保证数据完整性,这意味着您可以将SSE或WebSockets用于浏览器客户端。但是,它需要为每个客户端发送数据。

SSE仅支持文本数据,并且是单向的。它还会施加其他限制并使用浏览器的每个域连接限制之一(浏览器通常限制为每个域6个HTTP连接)。

WebSockets是双向的,提供更大的灵活性。此外,它们不会降低浏览器的每域连接限制。

就性能而言,轮询确实是一个坏主意,这既是由于开销,也是由于冗余请求的可能性。

短搜索会为您提供更多信息。之前已经提出过很多关于这个问题的问题。

讨论了WebSockets vs. SSE,关于polling vs. WebSockets的效果讨论以及use-cases for AJAX in a WebSockets world的概述。

这些应该可以帮到你。