diff --git a/lib/websocket/extensions.rb b/lib/websocket/extensions.rb index 14ca7ab..3ea367a 100644 --- a/lib/websocket/extensions.rb +++ b/lib/websocket/extensions.rb @@ -115,6 +115,12 @@ def generate_response(header) @sessions = sessions response.size > 0 ? response.join(', ') : nil + ensure + if sessions and !sessions.equal?(@sessions) + sessions.each do |ext, session| + session.close rescue nil + end + end end def valid_frame_rsv(frame)