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

那么如何让它刷新,以便定期向我的用户显示更新的队列大小?

一种解决方案是使用 ajax 回调到服务器。您使用放入 html 页面的 javascript 进行 ajax 调用。使用 ajax,页面不必不断地重新加载——而是将新信息插入到页面中。ajax 调用由 javascript 的setInterval()函数启动,以使其一遍又一遍地重复。

您还可以使用 WebSockets 打开持久连接并将数据从服务器推送到客户端。这将需要在服务器端定期推送数据的定时循环。

我推荐ajax路线。

于 2013-07-03T20:03:50.933 回答