在防火墙后接收回复

Receive answer back behind a firewall

我目前正在开发物联网产品。 我的问题是如何在没有端口转发的情况下启动与外部的连接并收听答案?

在同一网络 (@home) 中时,我在已知端口上使用简单的 udp 套接字。

有protocol/solution吗?

我目前所做的是使用 Firebase Cloud Messaging 到达外部,但是智能手机当然无法回复 IoT(目前 Json 请求)。

IoT --> Cloud --> App

但不是

Iot <-- Cloud <-- App

我可以通过在 FCM 中使用 XMPP 请求来解决这个问题吗?

您必须想象最终客户产品的日常场景。

某些 Firebase 功能仅适用于传出 HTTPS 连接,不需要您在设备上打开传入端口。

这方面的一个例子是 Firebase 数据库,它带有一个 Android SDK,它完全依赖于(网络)套接字连接 来自 设备 Firebase 服务器。 Firebase 数据库的 REST API 在相同的基础架构中工作,除了它使用常规 HTTP 请求而不是 Web 套接字。但是 Web 套接字和 HTTP 请求都通过常规 HTTPS 端口 (443)。因此,除非您的防火墙阻止 HTTP(S) 流量,否则这种方法应该有效。

在这种情况下,您将使用 Firebase 数据库作为 Android 应用和物联网设备之间的中介。