我正在構建一個使用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