从Windows 2012中运行的Web服务器,我需要向特定客户端发送消息。这些客户端是超过2000的Delphi应用程序。每条消息都是针对特定客户端的,没有广播。 我可以使用哪种技术?我在这个问题上是全新的。 我看到Websockets,SignalR(基于Websockets),MSMQ,RabbitMQ,......
MSMQ:似乎是一个很好的解决方案。缺点:它仅适用于Windows。也许在未来,我需要添加其他平台作为客户端。
RabbitMQ:这也很好,但我认为它为我的场景提供了太多功能。基本上我只需要从服务器向特定客户端发送消息。
SignalR:我很困惑。它似乎基本上适用于Web浏览器,而不适用于客户端应用这似乎是一个简单的解决方案。基本上,我正在寻找一个简单而基本的解决方案,我可以在Delphi中实现从Web服务器接收消息。
答案 0 :(得分:4)
WebSocket(HTTP升级)是一个轻量级选项,也可用于Delphi客户端:
WebSocket旨在在Web浏览器和Web中实现 服务器,但它可以被任何客户端或服务器应用程序使用。该 WebSocket协议是一种独立的基于TCP的协议。
请参阅WebSocket client implementations for Delphi
RabbitMQ和其他解决方案很有用,例如,如果客户端在服务器想要发送消息时可能处于脱机状态。消息代理提供了一个存储消息将等待客户端的存储,即使服务器重新启动也是如此。消息代理也将减少HTTP服务器上的负载。