如何触发从 Web 服务器到客户端 en Delphi 的事件?

How to trigger an event from a web server to client en Delphi?

在 Windows 2012 年,我需要从 Web 服务器 运行 向特定客户端发送消息。这些客户端是 Delphi 个应用程序,超过 2000 个。每条消息都是针对特定客户端的,没有广播。 我可以使用哪种技术?我在这个问题上是全新的。 我看到了 Websockets、SignalR(基于 Websockets)、MSMQ、RabbitMQ,...

MSMQ:似乎是个不错的解决方案。缺点:它仅适用于 Windows。也许以后我需要添加其他平台作为客户端。

RabbitMQ:它也不错,但我认为它为我的场景提供了太多功能。基本上我只需要将消息从服​​务器发送到特定的客户端。

SignalR:我很困惑。它似乎主要用于网络浏览器,而不是客户端应用程序。这似乎是一个简单的解决方案。

基本上,我正在寻找一个可以在 Delphi 中实现的简单基本解决方案,以从 Web 服务器接收消息。

WebSocket(HTTP 升级)是一个轻量级选项,也可用于 Delphi 客户端:

WebSocket is designed to be implemented in web browsers and web servers, but it can be used by any client or server application. The WebSocket Protocol is an independent TCP-based protocol.

WebSocket client implementations for Delphi

RabbitMQ 和其他解决方案很有用,例如,如果在服务器要发送消息时客户端可能处于离线状态。消息代理提供了一个存储,消息将在其中等待客户端,即使服务器重新启动也是如此。此外,消息代理将减少 HTTP 服务器上的负载。