我有一个 Web 服务器,当服务器检测到数据库发生变化时,我想向客户端发送数据。我希望客户端无需轮询即可接收数据。
实现这一目标的最佳方法是什么?
(我读了一些关于 SSE - 服务器发送事件,但不确定这是要走的路)
谢谢
我有一个 Web 服务器,当服务器检测到数据库发生变化时,我想向客户端发送数据。我希望客户端无需轮询即可接收数据。
实现这一目标的最佳方法是什么?
(我读了一些关于 SSE - 服务器发送事件,但不确定这是要走的路)
谢谢
是的,服务器发送事件是监听服务器变化的合适技术。
如果您只是在听,那么 SSE 比 2-way WebSocket 更好(更快、轻量级、HTTP 兼容)。
答案会因您使用客户端 Javascript 的自由度而异。
如果您的应用程序为您提供完全的自由,您甚至可以将您的客户端设置为 JMS 侦听器,并将 JMS 消息从客户端传递到服务器。例如,您可以使用Apache Ajax。
另一种选择是将您的 Web 客户端设置为使用例如Webdis的 redis 客户端
正如您所提到的,Server-sent-events 也是一种选择,WebSockets 也是一种选择。您需要根据您的限制进行选择。
如果轮询不是一个选项,你可以考虑更好的技术,WebSockets,如果你的服务器支持它(和你的目标浏览器!)。但是,无论如何,您需要客户端打开到服务器的连接。