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

时间:2016-10-06 10:51:01

标签: slack-api slack botkit

我使用Howdy.ai's Botkit作为简单的bot应用程序,并在VPS上的node.js上运行它。基本上,我为来自here的Slack应用程序定制了示例,现在正在努力保持机器人活着 - 在一些未定义的时间之后,Slack API的RTM通道关闭了,我可以找不到合适的方法重新连接。到目前为止我试过

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 个答案:

答案 0 :(得分:7)

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

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

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

答案 1 :(得分:1)

您是否尝试过使用forever模块? https://www.npmjs.com/package/forever

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

我希望有帮助