Slack Botkit:RTM关闭后自动重新连接

我使用Howdy.ai's Botkit作为一个简单的bot应用程序并让它在VPS上的node.js上运行 . 基本上,我从here定制了一个Slack应用程序的示例,现在我正在努力争取 keep the bot alive - 在一些未定义的时间之后,Slack API的RTM通道找到了重新连接的正确方法's closed and I can' . 到目前为止我试过了

controller.on('rtm_close',function(bot) {
   console.log('** The RTM api just closed. Trying reconnect...');
   // Try a reconnect
   bot.startRTM(function(err) {
      if (!err) {
          trackBot(bot);
      } else {
          console.log('** The RTM api couldn\'t be reopened. It\'s closed now.'); 
      }
   });
});

trackBot 函数控制日志记录:

function trackBot(bot) {
   _bots[bot.config.token] = bot;
}

我似乎错过了整个方法的工作原理 . 任何帮助都非常感谢!

回答(2)

2 years ago

要启用重新连接,您需要将 retry 配置值设置为 true

// Launch bot
  bot = controller.spawn({
    retry: true,
    token: 'xxx'
  })

https://github.com/howdyai/botkit/blob/master/readme-slack.md#slack-controller

2 years ago

你尝试过使用forever模块吗? https://www.npmjs.com/package/forever

然后用 forever stop bot.js; forever start bot.js && forever logs bot.js -f 运行它

我希望有所帮助