请教一个 H5 和 PC 上的程序通讯的问题

2022-03-05 09:36:02 +08:00
 WindProtect

需求是这样的,我们做了个 h5 程序跑手机浏览器上,然后需要在内网中的某台电脑运行一个打印程序来打印内容。

本来用的 http + websocket 直连 ip 来通讯,也运行良好。但是现在需要在这个 h5 程序加个扫码功能,这样那 h5 程序只能跑在 https 上,这样 websocket 也只能通过 ssl 来连接,使用 wss 的话又无法通过 ip 来直接请求。

各位有什么能让使用了 ssl 的 H5 程序直接和指定 PC 通讯的方案么?能双向通讯最好,实在不行单向也行。

2157 次点击
所在节点    JavaScript
13 条回复
pigspy
2022-03-05 09:44:10 +08:00
那就看能不能使用第三方的服务器来帮助 PC 和网页端建立连接了
zhouxiajie86
2022-03-05 09:48:31 +08:00
用 nginx 做下转发
WindProtect
2022-03-05 09:59:39 +08:00
@pigspy 有想过,一个是双方都和服务器建连接,但这又得自己做转发感觉很麻烦。二是用 MQTT ,不过第一次用不熟悉得学习下。就想着问问看有没什么简单的方法可以手机直接请求到 PC 的方案我又想不到的。。

@zhouxiajie86 nginx 不现实。打印程序不知道跑哪个网络哪个 ip 的,不可能每安装次打印程序就配置一次吧。
op351
2022-03-05 09:59:51 +08:00
h5 扫码只能用 https ?这么神奇吗?
ciddechan
2022-03-05 10:06:23 +08:00
反正扫码这种需求也不太需要 ws 吧?直接 h5 简单轮询不行?
qwertyzzz
2022-03-05 10:07:04 +08:00
nginx !
Rache1
2022-03-05 10:14:47 +08:00
最简单办法,给你这个 H5 再添加一个 https 的域名,扫码的时候单独跳到那个域名,扫码完成后再把扫码结果附在 URL 或者用页面表单带回来 http 的页面,然后再拿给 ws 处理。
WindProtect
2022-03-05 10:18:44 +08:00
@op351 对的,要使用摄像头只能开启 ssl 。

@ciddechan 用 ws 主要是双向通讯用,和扫码没什么关系,扫码处理 js 就能做了,现在问题是因为要加扫码,导致只能开启 https ,然后不管 ws 还是 http 请求,都要开启 ssl 才能访问。然后我弄域名又不能简单指向到哪台内网的主机。
WindProtect
2022-03-05 10:20:46 +08:00
@Rache1 这个可以,我研究下。
markgor
2022-03-05 11:09:42 +08:00
1 、自签证书---缺点是每个客户端要安装证书
2 、几十块买个域名配个免费证书--缺点涉及费用
KingPL
2022-03-05 11:24:20 +08:00
开发个安卓 webView 忽略掉 ssl 自签证书,这样跑 https 的 h5 就行
WindProtect
2022-03-05 11:50:17 +08:00
搞定了,弄个 http 的静态页面,就跑 websocket ,传完数据就关,虽然牺牲了双向通讯的功能,不过这功能在这个 h5 暂时没应用,先这么弄了,下班回家。

再次感谢 @Rache1
WindProtect
2022-03-05 11:51:50 +08:00
@KingPL 能搞 android 我就不这么头痛了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/838119

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX