我从ActionController:Live切换到websocket-rails,我只是想知道一旦用户关闭浏览器窗口,如何关闭服务器端的连接?
使用ActionController:Live以前有:
def stream
response.headers['Content-Type'] = 'text/event-stream'
@redis_sub = RedisStream.new_redis_client
# Subscribing to user's stream by session token
@redis_sub.subscribe([ token ]) do |on|
on.message do |channel, msg|
## Did stuff
response.stream.write(msg)
end
end
rescue IOError
"\n\nIOError in controller"
rescue ClientDisconnected
puts "\n\nClient has disconnected\n\n"
ensure
@redis_sub.quit
response.stream.close
end这很好,现在我试着做同样的事情,但是使用websockets,我想知道如何关闭连接并退出我的redis订阅。
发布于 2015-03-12 06:58:52
来自websocket控制器内部的connection.close!。
https://github.com/websocket-rails/websocket-rails/issues/219
发布于 2016-02-10 15:15:22
为了加深@TheNastyOne的回答,您可以在客户端关闭来自dispatcher的连接,如下所示:
// Open connection.
var dispatcher = new WebSocketRails('localhost:3000/websocket');
// Close connection.
dispatcher.disconnect();这里解决了描述这两种方法的问题。
https://stackoverflow.com/questions/28438582
复制相似问题