class ActionCable::Connection::ClientSocket

def initialize(env, event_target, event_loop, protocols)

def initialize(env, event_target, event_loop, protocols)
  @env          = env
  @event_target = event_target
  @event_loop   = event_loop
  @url = ClientSocket.determine_url(@env)
  @driver = @driver_started = nil
  @close_params = ["", 1006]
  @ready_state = CONNECTING
  # The driver calls +env+, +url+, and +write+
  @driver = ::WebSocket::Driver.rack(self, protocols: protocols)
  @driver.on(:open)    { |e| open }
  @driver.on(:message) { |e| receive_message(e.data) }
  @driver.on(:close)   { |e| begin_close(e.reason, e.code) }
  @driver.on(:error)   { |e| emit_error(e.message) }
  @stream = ActionCable::Connection::Stream.new(@event_loop, self)
end