0

Sinatra と Twilio API を使用して、Heroku で Ruby アプリを実行しています。

キューは機能し、キュー内の通話数を表示する ERB を作成できます。通話がキューにあり、更新すると、新しい番号が表示されます。

ブラウザが自動更新されるか、ページ自体が X 秒ごとに API からプルされるかどうかにかかわらず、これを自動的に行うにはどうすればよいですか?

get '/display' do
account_sid = 'sid'
auth_token  = 'token'
@client = Twilio::REST::Client.new account_sid, auth_token

# Get an object from its sid. If you do not have a sid,
# check out the list resource examples on this page
queue = @client.account.queues.list.each do |queue|
friendlyName = queue.friendly_name

end

@size =     @client.account.queues.get("sid")
    @display = @size.current_size
    erb :display
end 

display.erb には次のようなものがあります:

Current queue size is <%= @display %>

更新されたキュー サイズが定期的にユーザーに表示されるようにするにはどうすればよいでしょうか? それとも、そのオブジェクトを ERB ファイルに入れて、ループで実行するだけですか?

4

1 に答える 1

1

更新されたキュー サイズが定期的にユーザーに表示されるようにするにはどうすればよいでしょうか?

1 つの解決策は、サーバーへの ajax コールバックを使用することです。HTMLページに配置したjavascriptを使用してajax呼び出しを行います。ajax を使用すると、ページを継続的にリロードする必要がなくなります。代わりに、新しい情報がページに挿入されます。ajax 呼び出しは、javascript のsetInterval()関数で開始して、何度も繰り返すことができます。

WebSocket を使用して永続的な接続を開き、サーバーからクライアントにデータをプッシュすることもできます。これには、サーバー側で定期的にデータをプッシュするタイムド ループが必要になります。

ajax ルートをお勧めします。

于 2013-07-03T20:03:50.933 に答える