我有一个案例,我在互联网上有一个面向公众的服务,我希望服务器能够在需要时联系位于正常家庭网络中的专门设计的嵌入式设备。
我知道设备可以轮询服务器以获取更新等,但是 1)在服务器执行某些操作与设备轮询更新之间会有延迟,以及 2)会产生大量无用的流量(随着时间的推移)。
有人对如何做到这一点有任何建议吗?我最初的想法是让嵌入式设备使用 UPNP 尝试在家庭路由器中生成端口转发规则,然后将该端口注册到服务器。然后,服务器可以向该地址生成一个 HTTP 请求(http 以便将其路由等而不会被防火墙等阻止)。如果设备无法创建转发规则,那么它将重新使用轮询方法。
这听起来对吗?任何人有任何经验可以分享这种事情吗?(客户端将是嵌入式 linux 上的 c++,服务器 .NET)。