2

我将Howdy.ai 的 Botkit用于一个简单的机器人应用程序,并让它在 VPS 上的 node.js 上运行。基本上,我从这里定制了一个 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;
}

看来我错过了整个方法的工作原理。非常感谢任何帮助!

4

2 回答 2

7

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

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

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

于 2017-01-20T22:13:42.327 回答
1

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

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

我希望这会有所帮助

于 2016-11-28T04:49:52.123 回答