This method creates a socket instance with the given protocol type.
If the block is given, it will be invoked with the socket instance as a parameter, and the socket will automatically be closed when the block terminates.
proto: protocol type. { :tcp, :udp, :tls }
host: host name or IP address
port: port number
kwargs: extra options. For more details, see methods below.
block: customize socket
Code example:
socket_create_tcp(host, port, **kwargs, &block)
This method creates socket instance for TCP.
If the block is given, it will be invoked with the socket instance as a parameter, and the socket will automatically be closed when the block terminates.
host: hostname or IP address
port: port number
kwargs: extra options
resolve_name: if true, resolve the hostname
nonblock: if true, use non-blocking I/O
linger_timeout: the timeout (seconds) to set SO_LINGER
recv_timeout: the timeout (seconds) to set SO_RECVTIMEO
send_timeout: the timeout (seconds) to set SO_SNDTIMEO
send_keepalive_packet: if true, enable TCP keep-alive via SO_KEEPALIVE
connect_timeout: the timeout for socket connect. When the connection
timed out during establishment, Errno::ETIMEDOUT is raised.
send_keepalive_packet Use Case
If you set true to send_keepalive_packet, you also need to configure keep-alive related kernel parameters:
This parameter mitigates half-open connection issue with load balancers. Check also this issue for AWS NLB case.
socket_create_udp(host, port, **kwargs, &block)
This method creates socket instance for UDP.
If block is given, it will be invoked with the socket instance as a parameter, and socket will automatically be closed when the block terminates.
host: host name or IP address
port: port number
kwargs: extra options
resolve_name: if true, resolve the hostname
connect: if true, connect to host
nonblock: if true, use non-blocking I/O
linger_timeout: the timeout (seconds) to set SO_LINGER
recv_timeout: the timeout (seconds) to set SO_RECVTIMEO
send_timeout: the timeout (seconds) to set SO_SNDTIMEO
socket_create_tls(host, port, **kwargs, &block)
This method creates socket instance for TLS.
If block is given, it will be invoked with the socket instance as a parameter, and socket will automatically be closed when the block terminates.
host: host name or IP address
port: port number
kwargs: extra options
version: set TLS version :TLSv1_1 or :TLSv1_2. (default: :TLSv1_2)
ciphers: set the list of available cipher suites. (default:
"ALL:!aNULL:!eNULL:!SSLv2")
insecure: if true, set TLS verify mode NONE
verify_fqdn: if true, validate the server certificate for the hostname
fqdn: set FQDN
enable_system_cert_store: if true, enable system default cert store
allow_self_signed_cert: if true, allow self-signed certificate