Ruby on rails Rails 4实时流+;基于订阅的更新
关于使用ActionController::Live和流式通知给用户,我有几个问题Ruby on rails Rails 4实时流+;基于订阅的更新,ruby-on-rails,ruby-on-rails-4,live-streaming,Ruby On Rails,Ruby On Rails 4,Live Streaming,关于使用ActionController::Live和流式通知给用户,我有几个问题 有没有办法判断流是否关闭或何时不再可写 是否有理由在您的操作中手动关闭流?我见过一些例子,他们会显式地关闭他们的流,但是看着浏览器,它似乎为我处理了这个问题 我有一个用户通知类,我的操作可以订阅该类。在用户控制器的创建操作中,我告诉通知类广播新用户 为了方便这一点,我不得不让小溪保持畅通。我也不知道何时从用户通知取消订阅,因为我不知道流何时关闭(通过浏览器启动) 所以这只会让持久连接保持打开状态,然后一旦有什么东
rescue IOError
UserNotifier.unsub(...)
...
您可以使用
确保
确保在写入失败、连接关闭或出现问题时关闭流:
def your_action
response.headers['Content-Type'] = 'text/event-stream'
begin
# Do your writing here: response.stream.write("data: ...\n\n")
rescue IOError
# When the client disconnects, writing will fail, throwing an IOError
ensure
response.stream.close
end
end
def your_action
response.headers['Content-Type'] = 'text/event-stream'
begin
# Do your writing here: response.stream.write("data: ...\n\n")
rescue IOError
# When the client disconnects, writing will fail, throwing an IOError
ensure
response.stream.close
end
end