heroku 上套接字模式下的 Bolt-js 失败并出现错误 R10

tov*_*euw 3 heroku slack-api slack bolt

我有一个使用 socketMode: true 运行的 Slack Bolt-js 服务器应用程序,它在我的本地电脑上运行得很好,但是当在 Web dyno 中将其移动到 Heroku 时,它会在 1 分钟后失败。它启动得很好,在那一分钟内它功能齐全,但 1 分钟后我得到了这个

2021-09-01T12:59:33.771745+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
Run Code Online (Sandbox Code Playgroud)

我的 Bolt-js 应用程序是这样启动的:

await app.start(process.env.PORT);
Run Code Online (Sandbox Code Playgroud)

我认为 Heroku 未能检测到此端口上有一个 Websocket 打开,然后超时。

我已经查阅了很多文档。我必须说 Bolt-js 文档与 Heroku 的文档冲突。他们建议我使用worker dyno,但 Heroku 明确表示worker dyno 无法接收Web HTTP 流量。

这里完全不知所措。有人有什么想法吗?

小智 8

几天前我遇到了这个问题,我发现改变 Heroku 上的 dyno 类型可以web解决worker这个问题。这个想法来自这个页面,特别是这个Dyno configurations部分。

要更改测功机类型,请导航到ResourcesHeroku 应用程序的部分,您应该看到类似以下内容的内容: 资源选项卡

从那里您想要编辑web类型并将其关闭 - 对worker类型执行相同的操作并将其打开。测功机会自动重新启动,因此您应该能够立即查看日志。