## Connect

Connect to a persistent Responses API WebSocket. Send `response.create` events to create responses and `response.steer` events to queue user input containing text, images, or files for a continuation. Receive response stream events and steering acceptance, pending, or failure events over the socket.

**WebSocket** `wss://api.openai.com/v1/responses`

### Example

```ruby
require "openai"
require "async"

client = OpenAI::Client.new
# Run the deadline in the same scheduler as the WebSocket and its cleanup.
Sync do |task|
  task.with_timeout(60) do
    # The connection block closes the socket on completion or error.
    client
      .beta
      .responses
      .connect(
        request_options: {extra_headers: {"OpenAI-Beta" => "responses_multi_agent=v1"}}
      ) do |connection|
        connection.send_event(type: :"response.create", model: "gpt-6-astra", input: "Say hello in one sentence.")
        # A partial answer or an early close must not count as success.
        completed = false
        connection.each do |event|
          case event.type.to_s
          when "response.output_text.delta", "response.refusal.delta"
            print(event.delta)
            $stdout.flush
          when "response.completed"
            completed = true
            puts
            break
          when "error"
            raise "Responses request failed: #{event.error.message}"
          when "response.failed", "response.incomplete"
            raise "Responses request failed: #{event.type}"
          end
        end

        raise "Connection closed before response.completed" unless completed
      end
  end
end
```
