我正在构建一个使用TweetStream(使用EventMachine监听Tweets)的Sinatra应用程序。我还希望该应用能够像普通的Sinatra应用一样提供页面,但是它似乎像Sinatra在“倾听”Tweets时不能“听”页面请求。如何运行EventMachine并在Sinatra中提供页面?
这是我可以通过使用不同的服务器或以不同的方式构建我的应用程序来解决?我试过使用WebBrick和Thin。
这里基本上是我在做什么:
class App < Sinatra::Base
# listening for tweets
@client = TweetStream::Client.new
@client.track(terms) do |status|
# do some stuff when I detect terms
end
get '/' do
"Here's some page content!"
end
end
正在使用EM.defer来完成这项工作?我正在使用一个使用EventMachine的库,所以如果出现这种情况,我可能需要对库或我的实现进行一些调整。另外如果将EM块放在Sinatra的get block外面会发生什么?我希望TweetStream在应用程序启动后立即启动。 – DorkRawk