From f1a76bd429ab40dfd995dc9667602b4d1733aa06 Mon Sep 17 00:00:00 2001 From: Matthew Draper Date: Fri, 26 Feb 2016 13:57:55 +1030 Subject: The async.callback call should live with the hijack If we're deferring one, we should defer the other too. --- actioncable/lib/action_cable/connection/client_socket.rb | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'actioncable/lib/action_cable/connection/client_socket.rb') diff --git a/actioncable/lib/action_cable/connection/client_socket.rb b/actioncable/lib/action_cable/connection/client_socket.rb index d7632b05fe..f6b11e93f0 100644 --- a/actioncable/lib/action_cable/connection/client_socket.rb +++ b/actioncable/lib/action_cable/connection/client_socket.rb @@ -50,15 +50,16 @@ module ActionCable @driver.on(:error) { |e| emit_error(e.message) } @stream = ActionCable::Connection::Stream.new(@stream_event_loop, self) - - if callback = @env['async.callback'] - callback.call([101, {}, @stream]) - end end def start_driver return if @driver.nil? || @driver_started @stream.hijack_rack_socket + + if callback = @env['async.callback'] + callback.call([101, {}, @stream]) + end + @driver_started = true @driver.start end -- cgit v1.2.3