1
SinatraでストリーミングWebアプリケーションを作成する必要があります。複数の接続を開いているときにストリーミングの単一の「ソース」を使用しようとしました。Sinatraストリーミングアプリ+起動時の定期的なタイマー
私はfews日前にテストすることはできませんが、私の主なアイデアは、このようなものです:私は常に好む
require 'sinatra/base'
class MyApp < Sinatra::Base
set :path, '/tmp'
set :environment, 'production'
def initialize
@connections = []
EM::next_tick do
EM::add_periodic_timer(1) do
@connections.each do |out|
out << "test" << "</br>"
end
end
end
end
get '/' do
stream(:keep_open) do |out|
@connections << out
end
end
end
run MyApp.new
:あなたはそれを動作させるために管理していない場合は
set :server, :thin
connections = []
configure do
EventMachine::PeriodicTimer.new(1) do
connections.each { |out| out << "test" << "\n" }
end
end
get '/' do
stream(:keep_open) { |out| connections << out }
end