Skip to content

Preview Ruby 4.1 is a preview. It can change before the final release. Switch to Ruby 4.0 →

instance method

OpenSSL::SSL::SSLSocket#connect_nonblock

(?exception: true) -> self
(exception: false) -> (self | :wait_readable | :wait_writable)
ssl.connect_nonblock → self
ssl.connect_nonblock(exception: false) → self, :wait_readable, or :wait_writable

Initiates the SSL/TLS handshake as a client in non-blocking manner.

Example
# emulates blocking connect
begin
  ssl.connect_nonblock
rescue IO::WaitReadable
  IO.select([s2])
  retry
rescue IO::WaitWritable
  IO.select(nil, [s2])
  retry
end

By specifying a keyword argument exception to false, you can indicate that connect_nonblock should not raise an IO::WaitReadable or IO::WaitWritable exception, but return the symbol :wait_readable or :wait_writable instead.