用于NAT遍历的rabbitmq的基本机制

时间:2014-02-18 19:57:11

标签: rabbitmq nat mqtt

我正在寻找用于NAT遍历的rabbitmq的基础机制。

假设:

  1. 1.Server S部署在云端
  2. 许多客户C1-CN被部署为客户,​​他们是NAT的后面。
  3. 服务器S需要通知客户端
  4. 我想知道服务器如何找到客户端的IP /端口?它依赖于一种ICE服务器吗?或者它保存每个客户端的IP / ID一个大的查找表(LUT)。或者客户端发送大量数据包,服务器将msg放入响应数据包中?

    TNX

    @hardillb: 谢谢,我明白了,但这种做法可能会给我带来严重的问题。原因是我想将它部署在超低功耗微控制器中。因此,如果我的micro连续向服务器发送保持活动包,它将很快被释放,因此我需要非常快地更换它的电池。但在我的申请中,它应该持续至少1年。我想知道是否有任何方法可以防止发送这些数据包并将微处理器置于睡眠模式。只要有命令,它就可以醒来?我听说过CoAP(micro成为服务器),但它仍然存在NAT遍历问题。我想知道你是否知道克服这个问题的方法?

1 个答案:

答案 0 :(得分:1)

客户端通过nat网关打开与服务器的TCP连接。 nat网关保持一个表映射从客户端到服务器的出站连接的入站连接,这允许返回数据包返回给客户端。

假设客户端纯粹是订户(不发布任何消息),它会定期发送保持活动数据包,让服务器知道它仍然连接(这也有利于通过nat保持连接活动)网关)。

当服务器收到有关客户订阅的主题的消息时,只需通过现有连接将该消息转发给该客户端。