Json 只知道一个IP的两台设备通信的最佳方式

Json 只知道一个IP的两台设备通信的最佳方式,json,python-3.x,zeromq,messaging,pyzmq,Json,Python 3.x,Zeromq,Messaging,Pyzmq,我正在尝试创建一个程序,其中包含一种exchange JSONs消息传递系统,其中有一个a或中心设备,我们知道它的静态IP和一个或多个B设备,它们有一个动态且不稳定的IP 我提议的沟通不仅应该从B到A是可行的(包括B的回答与否),而且应该从A到B也是可行的,并具有相同的结果 我的信息技能仅限于ZMQ,因此我考虑了两种可能的情况: 在第一种情况下,基于推拉式套接字,A有一个拉式套接字和另一个推式套接字,方式与B相同。作为心跳信号,B每X秒/分钟发送一个JSON,说“这是我的IP”。该信息在一个时间

我正在尝试创建一个程序,其中包含一种exchange JSONs消息传递系统,其中有一个a或中心设备,我们知道它的静态IP和一个或多个B设备,它们有一个动态且不稳定的IP

我提议的沟通不仅应该从B到A是可行的(包括B的回答与否),而且应该从A到B也是可行的,并具有相同的结果

我的信息技能仅限于ZMQ,因此我考虑了两种可能的情况:

在第一种情况下,基于推拉式套接字,A有一个拉式套接字和另一个推式套接字,方式与B相同。作为心跳信号,B每X秒/分钟发送一个JSON,说“这是我的IP”。该信息在一个时间范围内被认为是可靠的,一方面,我们解决了从B到a的通信(相当容易),另一方面,B保存了一个IP,尝试以最低的可靠性与之联系

在第二个例子中,我考虑了关于REQ-REP套接字的问题。在此配置中,A有一个RES套接字,能够接收和响应来自B的请求,B又有一个用于执行请求的相关REQ套接字。从B到A的通信同样很简单。相反,我们的想法是让B以心跳的形式抛出REQ请求(例如,每半秒),询问“有什么适合我吗?有什么适合我吗?”比第一个更可靠,但在网络级别效率要低得多(我完全忽略了这类呼叫的实际成本)


有没有更好的方案?我想强调的是,我使用ZMQ是因为我所知道的,但是如果有更好的工具/更适合这种情况,我将很乐意了解和/或使用它们。我知道谷歌有一种针对Android的API,但我不是专门谈论智能手机。

记住,推送或请求或任何东西的终端完全独立于绑定或连接的终端。因此,具有稳定IP地址的设备可以绑定其zmq套接字,其他所有设备都可以将其zmq套接字连接到该IP地址,但您可以选择哪一端是推或拉,或REQ或REP
  • “A”必须
    bind()
    PUB套接字和路由器套接字
  • 任何“B”客户机都有两个插座供SUB和DEALER使用,并应
    连接()
    到已知IP
  • 推/拉不起作用,因为推只向一个客户端发送一次消息,用于任务/负载平衡
  • 参考/示例和更多详细信息,请访问jupyter笔记本。请注意,它们使用两个路由器-经销商通道来执行带外命令和正常stdin。你只需要一个

  • 非常感谢。我要试试这个。最后我决定搬到RabbitMQ,所以没有答案