我目前正在开发 IoT 产品。 我的问题是如何在没有端口转发的情况下启动与外部的连接并收听答案?
在同一网络 (@home) 中时,我在已知端口上使用简单的 udp 套接字。
是否有协议(protocol)/解决方案?
我目前所做的是使用 Firebase Cloud Messaging 与外部联系,但是智能手机当然无法回复 IoT(目前是 Json 请求)。
IoT --> Cloud --> App
但不是
Iot <-- Cloud <-- App
我可以通过在 FCM 中使用 XMPP 请求来解决这个问题吗?
您必须想象最终客户产品的日常场景。
最佳答案
某些 Firebase 功能仅适用于传出 HTTPS 连接,无需您在设备上打开传入端口。
这方面的一个例子是 Firebase 数据库,它附带一个 Android SDK,该 SDK 完全依赖于从设备到 Firebase 服务器的(网络)套接字连接。 Firebase 数据库的 REST API 在相同的基础架构中工作,除了它使用常规 HTTP 请求而不是 Web 套接字。但是 Web 套接字和 HTTP 请求都通过常规 HTTPS 端口 (443)。因此,除非您的防火墙阻止 HTTP(S) 流量,否则这种方法应该有效。
在这种情况下,您可以使用 Firebase 数据库作为 Android 应用和物联网设备之间的中介。
关于android - 在防火墙后接收回复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43349780/