gpt4 book ai didi

node.js - Heroku 上的 Weinre

转载 作者:太空宇宙 更新时间:2023-11-03 22:56:14 26 4
gpt4 key购买 nike

我正在尝试设置Weinreheroku但我遇到了一些问题。

我成功地构建了应用程序,只需使用带有 weinre npm 依赖项的 package.json 和如下所示的 Procfile

web: node_modules/weinre/weinre --httpPort $PORT

起初一切似乎都正常,客户端显示了 UI,JS 文件加载正常,但调试不起作用,并且服务器端没有出现任何客户端。

在查看日志时,我意识到对于每个包含/ws/target/* 或/ws/client/* 的请求,我不断收到 404 错误

2012-05-31T22:37:53+00:00 heroku[router]: GET xxxx.herokuapp.com/target/target-script.js dyno=web.1 queue=0 wait=0ms service=10ms status=200 bytes=190900
2012-05-31T22:37:36+00:00 heroku[router]: GET xxxx.herokuapp.com/ws/target/t-3 dyno=web.1 queue=0 wait=0ms service=3ms status=404 bytes=9
2012-05-31T22:36:39+00:00 heroku[router]: POST xxxx.herokuapp.com/ws/client/c-1 dyno=web.1 queue=0 wait=0ms service=40ms status=404 bytes=9

此设置在本地运行没有问题。

我还尝试了使用 --boundHost 0.0.0.0 的 Procilfe 并得到了相同的错误。当我使用 Heroku 应用程序域/子域作为主机时,我收到 weinre: error running server: Error: Listen EADDRNOTAVAIL error

如果需要,您可以在 github repo 查看源代码

https://github.com/felipesabino/weinre-heroku

编辑:这可能与 Heroku 不支持 WebSockets 有关: https://devcenter.heroku.com/articles/http-routing#websockets

最奇怪的是,PhoneGap 的 weinre 调试页面也出现同样的问题 http://debug.phonegap.com/

有人知道如何解决这个问题吗?

最佳答案

我现在在 Heroku 上运行 weinre,但我记得当我试图让它工作时,那真是一场噩梦。

这是使用 weinre 的2.0.0-pre-H0WVARLU-incubating,因此它可能有点不同,但我必须做的是:

  • 修改 weinre 本身,我必须告诉 weinre 绑定(bind)到所有主机,我修改了 cli.coffee 文件并将 boundHost 设置为 -all - 作为默认值
  • 我推荐在 channelManager.coffee 中进行 if remoteAddress 检查,因为您传入的地址是通过代理重新映射的,并且从未匹配
  • 打开详细调试,虽然您实际上不需要它来运行它,但它可以更轻松地跟踪发生错误的位置(以及请求未路由的原因)

我的 Procfile 最终变得非常简单,因为我尝试尽可能使用 weinre 作为“ native ”(请注意,存储库仅包含 weinre,它不是像您所做的那样的模块):

web: node weinre

我将任何端口更改保留为由 process.env.PORT 处理,而不是从 Procfile 传入

基本上我发现 weinre 确实不适合在代理后面工作!

关于node.js - Heroku 上的 Weinre,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10842446/

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