2016-10-06 11 views
2

Я использую Howdy.ai's Botkit для простого приложения бота и выполняю его на node.js на VPS. В основном, я настроил пример для Slack App от here, и теперь я боюсь держать бота в живых - после некоторого неопределенного времени RTM-канал к API Slack get закрыт, и я не могу найти правильный способ повторного подключения. До сих пор я пыталсяSlack + Botkit: Автоматическое повторное подключение после закрытия 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; 
} 

Кажется, я пропускаю, как работает весь подход. Любая помощь приветствуется!

ответ

1

Вы пытались использовать модуль forever? https://www.npmjs.com/package/forever

Затем запустите его с forever stop bot.js; forever start bot.js && forever logs bot.js -f

Я надеюсь, что помогает

+0

На самом деле , Я уже навсегда бежал, но думал, что я неправильно сконфигурировал его. По мере того, как я копал глубже, проблема, похоже, больше связана с самим интерфейсом Slack - он время от времени закрывает RTM-каналы. Но это не считается отключением программы в моем коде, поэтому навсегда не перезапускается. Поскольку повторное соединение также не работает, мне пришлось принудительно завершить работу программы с помощью инструкции 'process.exit()' после неудачного повторного подключения. –