【发布时间】:2020-01-01 07:27:46
【问题描述】:
来自节点 child_process 的 Cloudflare Argo 隧道
我有一个电子应用程序,我想从中生成一个执行的子进程
cloudflared tunnel --url localhost:3000
在某个目录中。从该目录中的 cmd 执行此操作会按预期实例化 argo 隧道,并且该 url 在进程运行时有效。这就是我从电子应用程序执行命令的方式:
const { spawn } = require('child_process')
let tunnel = spawn('cloudflared', ['tunnel', '--url', 'localhost:4000'], {
stdio: 'inherit', // Will use process .stdout, .stdin, .stderr
cwd: 'c://cloudflare'
})
我可以看到来自 cloudflare 的正常控制台输出,表明隧道已建立并且我的服务器正在 some-random-name.trycloudflare.com 上响应。但是,当从电子应用程序中启动该过程时,我在 cloudflare 错误页面上显示错误 1016。
有人有使用 Argo Tunnel 和 child_process 的经验吗?
【问题讨论】:
-
我对 cloudflare 没有任何经验,但错误代码意味着 cloudflare 没有找到您的原始 PC(因此某种 IP 不匹配)。首先,在您的 cmd 示例中,您有
localhost:3000,在您的电子示例中,您有localhost:4000,所以这可能是您忽略的东西?除此之外:您是否在本地服务器上运行您的 Electron 应用程序?这可能是另一个问题来源。 -
我安装了 Electron Fiddle 以及
cloudflaredcli,并且能够生成一个执行“cloudflared tunnel --url localhost:3000”的 child_process,其中 Argo Tunnel 按预期工作。 No problem.
标签: javascript node.js electron localhost cloudflare