gpt4 book ai didi

https - 网页如何向本地网络发送消息

转载 作者:行者123 更新时间:2023-12-04 15:22:08 24 4
gpt4 key购买 nike

我们的 Web 应用程序有一个按钮,该按钮应该将数据发送到本地网络上的服务器,然后再在打印机上打印一些东西。

到目前为止很简单:该按钮触发了对 http://printerserver/print.php 的 AJAX POST 请求。使用 token ,该页面连接到 Web 应用程序以验证 token 并获取要打印的数据然后打印。

然而,我们现在通过 HTTPs 交付我们的 Web 应用程序(我不想为此返回 HTTP),并且较新版本的 Chrome 和 Firefox 不再向 HTTP 地址发出请求,它们甚至不发送请求检查 CORS header 。

现在,跨协议(protocol) XHR 的现代替代方案是什么? Websockets 也有同样的问题吗? (谷歌搜索并没有弄清楚这里的当前状态。)我可以使用 TCP 套接字了吗?我也不想切换到 GET 请求,因为该操作不是幂等的,它可能对预加载和缓存有实际影响。

我可以以任何方式更改打印机服务器上的应用程序(所以我可以用 NodeJS 或其他东西替换它),但我不能更改用户的浏览器(例如,信任打印机服务器的自签名证书)。

最佳答案

您可以将网络服务器上的打印请求存储在队列中,并让打印服务器定期轮询打印请求。

如果那不可能,我会在网络服务器和打印服务器网络之间建立一个隧道或 VPN。这样您就可以从服务器端的网络服务器而不是客户端发出打印请求。如果您使用 curl,则有一些标志可以忽略无效的 SSL 证书等(我仍然怀疑引入队列会更好,因此打印请求不会阻塞)。

如果网络服务器可以与打印服务器所在的网络上的某物建立 ssh 连接,您可以执行以下操作: ssh params user@host some curl 命令。

我能想到的第三个选项,如果 printserver 可以绑定(bind)到例如 webserver 域的子域,比如:print.somedomain.com,你可以让它被 somedomain.com 证书信任,IIRC 你必须创建一个来自打印服务器证书的 CSR(证书签名请求),并使用 somedomain.com 证书对其进行签名。也许它本身甚至不需要成为子域,但也许这是浏览器在客户端执行它的要求。

关于https - 网页如何向本地网络发送消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26615508/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com