渐进式 Web 应用程序可以与本地网络上的设备一起使用吗?

Can a Progressive Web App work with devices on a local Network?

我的本地网络上有多个设备,每个 运行 一个网络服务器。此 Web 服务器仅显示 UI 以与设备交互。可以有任意数量的这些可用,它们可以用于多个不同的网络。由于许多可能的配置,静态 IP 可能无法工作。

我写的是一些 javascript 在本地网络上找到这些设备和 returns 它们的 IP。获得此 IP 后,我将使用 websockets 连接到服务器并对其进行控制。我希望开发的是一个可以做到这一点的渐进式网络应用程序。这是因为它会简化开发,意味着我只需要制作 1 个应用程序而不是 4 个应用程序(Windows、MacOS、iOS、Android)。但是我的问题是 HTTP 和 HTTPS。 PWA 必须是 HTTPS,而 Web 服务器是 HTTP。这意味着 web 套接字不能在两者之间工作,因为它被混合内容阻止。我猜如果我想要一个 PWA,我将不得不找到一种方法来保护每台设备上的 Web 服务器。问题是为每个设备获取 SSL 证书是不可行的,而且看起来很愚蠢,因为它们在本地网络上。

网络方面的事情不是我的强项,所以我想知道是否有办法实现这一点,或者我是否可以采取不同的途径。

关于保护网络服务器的问题,您需要为其提供证书(如果用于开发目的,您也可以自行生成):

有些解决方案已经为您提供了样板文件:

这应该可以帮助您完成后续步骤(如果我误解了您的要求,请纠正我)。

<meta http-equiv="Content-Security-Policy" content="default-src 'self'; connect-src http://192.168.XXX.XXX 'self'; object-src 'none'">

查看:https://csp-evaluator.withgoogle.com/