gpt4 book ai didi

delphi - 如何在这个系统内进行通信?

转载 作者:行者123 更新时间:2023-12-03 15:45:34 25 4
gpt4 key购买 nike

我们打算设计一个具有三个“层”的系统。

  1. 总部,只有一台服务器
  2. 区域内有很多“节点”
  3. 使用 iPad 的用户。

HQ 与节点进行 2 路通信,节点与用户进行 2 路通信。用户从不与总部沟通,反之亦然。

权力决定总部的 Windows 应用程序(使用 Delphi)和用户 iPad 的 native 桌面应用程序。他们对节点没有意见。

如果有令人信服的技术论据,我也许能够在 Windows 程序上将他们从“法令”改为“更喜欢”(例如,使其基于浏览器)。节点没有 GUI,它们只是坐在那里扮演中间人。

这些东西通信的最佳方式是什么(SOAP/HTTP/AJAX/jQuery/home-brewed-protocol-on-top-of-TCP/something-else?)最好使用相同的协议(protocol)端end,还是 hq<-->node 和 node<-->iPad 的不同协议(protocol)?

这两个接口(interface)的两端可能都希望启动一个事务(如果我推出自己的协议(protocol),我可以轻松地做到这一点),那么我应该使用推/拉/长轮询还是什么?

我希望这个描述有意义。如果没有,请提问。谢谢。

<小时/>

更新:
文件大小通常低于 1MB,不可能超过 10MB 甚至 5MB。在第一个文件被确认之前,不会发送第二个文件。

文件从总部“下坡”流向节点,再到 iPad。文件永远不会“上坡”流动,但会有一些小数据包(除了 ack 之外),这些数据包是由 iPad 上的用户操作发起的。这些将发送到本地节点,然后发送到总部。我们讨论的可能是 <128 字节。

我想各个方向也会有低速率的一般控制和维护流量。

最佳答案

对于推/拉(发布/订阅或点对点通信),可以使用跨平台消息代理。我不确定是否有适用于 Microsoft Message Queue (MSMQ) 的 (iOS) 客户端库,但我也会评估开源解决方案,例如 HornetQ , Apache ActiveMQ , Apollo , OpenMQ , Apache QPidRabbitMQ .

所有这些解决方案都为分布式消息传递提供了可靠的基础,例如故障转移、集群、持久性、高性能和附加的许多客户端。在此基础设施上,可以交换任何内容类型(JSON、二进制、纯文本)的消息,并且顶部消息可以包含路由和优先级信息。它们还支持事务性消息传递。

有Delphi和Free Pascal client libraries available适用于许多企业优质开源消息传递产品。 (我是其中一些的作者,支持ActiveMQ、Apollo、HornetQ、OpenMQ和RabbitMQ)

关于delphi - 如何在这个系统内进行通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5589849/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com