2

我有一个脚本,它使用一个eventmachine可以监听 API 调用的 gem(它是 slack-api gem)。

在我的开发环境中,我只是运行bundle exec ruby ruby_slack.rb并且控制台显示它正在侦听。当 API 调用命中时,我会看到stdout.

我如何在heroku中有同样的行为?

我创建了一个Procfilewhich has:web: bundle exec ruby slack.rb但我认为它只是在等待来自网络应用程序的请求来运行它。

我希望它运行(并继续运行)监听事件。

谢谢。

4

1 回答 1

0

你需要一个 web 服务器来响应 Heroku 要求它响应的端口和一个用于 websocket 处理的线程。以 Sinatra 为例:

require 'sinatra/base'

module MyBot
  class Web < Sinatra::Base
    get '/' do
      'Hello world.'
    end
  end
end

Thread.new do
  # run your Slack RealTime bot here
end

run MyBot::Web

这在本教程中得到了体现。通常也可以尝试slack-ruby-bot,它会为您完成所有繁重的工作。

于 2015-08-02T17:22:29.523 回答