我正在关注 heroku 的帖子包括此特定部分。如果我做了一个 noop 更改并且正在运行新的部署,机器人会做出响应。但过了一段时间,我看到机器人停止响应:
- heroku 仪表板没有显示任何异常(没有显示它正在休眠)
- 应用网页加载https://yourappname.herokuapp.com(不是来自缓存)
- 日志显示没有错误
这是否可能是 starbot 代码未维持开放连接的问题?我该如何诊断这个问题?
答案1
你使用的是原版 starbot 吗?没有其他修改?你的问题不清楚。
以下是一些可能的解决方案(无特定顺序):
1)尝试在本地运行starbot并查看它是否保持开放的连接。
2) 尝试在 VPS 或其他托管平台上运行 starbot,看看它是否保持开放的连接。
3)starbot 用途Slack JS作为处理底层 Slack 连接的库。它使用的是相当旧的版本(根据包文件.json)。这可能是原因。(当前版本为 11.0.2。)您可以尝试运行具有更新依赖项的 starbot 的分叉版本,尽管这可能会破坏代码。
4)基于上一点,rtm.client
看起来不再是官方 API 的一部分了。另一方面,我在 GitHub 上查看了另外两个实现此库的随机项目(复古机器人和完成),这两个似乎都使用了语法rtm.client
,因此如果不对该库进行更多研究,我无法判断。您可以尝试在 GitHub 上找到一个包含已编写的机器人的存储库,该机器人使用该库的最新版本,以查看它的外观/工作原理。
5)您可以编写自己的机器人,直接利用 Slack JS 库。
6)你可以编写自己的机器人,利用NodeJS 的官方 Slack SDK而不是非官方的 SlackJS。