我正在构建一个配置本地网络设备的应用程序。
可以在设备上嵌入HTTP服务器,并设置mDNS为其提供可解析的主机名,如my-device.local
也可以。
现在的问题是:设备没有足够的存储空间来存储复杂的Web应用程序,即使是简单的表单也在推动限制。
此外,在设备尝试联系网络服务之前,需要执行一些与网络服务通信的操作(例如将设备注册到您的帐户)。
这就是为什么我想构建一个实现以下流程的应用程序。
https://online.service.net
上打开https
网络服务并执行操作http://online.service.net
http
请求(其中Web应用仍在缓存中)通过本地网络与设备https://device.local
通信。这里的问题是,在第3步中,整个网页需要在http
上提供,因为CORS会阻止https
- > http
来电。因此,网络应用程序将部分提供给https
,部分超过http
,这看起来很糟糕,而且有些浏览器(例如最近的Chrome版本)会抱怨。
我能想到的其他解决方案:
device.local
域的证书,没有权限授予我们,因此用户需要手动接受它们。另外,他们需要安全存放。http://online.service.net
,而是重定向到http://device.local
,而只是对适合设备的更简单的表单感到满意。这没关系,已经是"后备"此流程的模式。但它打破了服务的其他一些要求。现在无法知道设备何时在网络上实际处于活动状态,这是通过从网页上通过http轮询设备来完成的。这为设备未正确连接的用户带来了很多错误,因此无法找到。