Sinatra Streamingには、どのコネクションに情報が送られるかを指定する方法があります。たとえば、特定のアカウントのユーザーのみ。Sinatra Streaming and Eventmachine Channels
私はこれがEventmachine Channelsを使って行うことができると信じていますが、私は方法がわかりません。任意のアドバイスやより良いサンプルコードをいただければ幸いです。
以下は、コードの関連する部分です。あなたが見ることができるように今すぐ開いているすべての接続に送信します。
configure do
set server: 'thin', connections: []
set :app_file, __FILE__
set :port, ENV['PORT']
set :public_folder, File.dirname(__FILE__) + '/public'
end
get '/stream', provides: 'text/event-stream' do
stream :keep_open do |out|
settings.connections << out
out.callback { settings.connections.delete(out) }
end
end
post '/update/contact/:id' do
@contact = Contact.get(params[:id])
@contact.update(params[:contact])
settings.connections.each { |out| out << "data: #{@contact.account_id} Contact #{@contact.id} #{@contact.first_name} #{@contact.last_name}\n\n" }
204
end
私は実際に同じことで今は苦労しています。 –
@ codefor5私は同様の技術的課題に直面しています。使用したソリューションを投稿できますか? – hershey92