XMPP::TcpTransport
Inherits XMPP::Transport / IO / Reference / Object
Classic RFC 6120 client transport over TCP. STARTTLS is negotiated by
Session on top of this transport; XEP-0368 direct TLS is pre-wrapped
here (mirroring the previous Client#open_socket behavior).
Constructors
Instance methods
Returns true if this IO is closed.
IO defines returns false, but including types may override.
True when TLS is already handled at or below this transport, so the session must not attempt a STARTTLS upgrade.
Reads at most slice.size bytes from this IO into slice.
Returns the number of bytes read, which is 0 if and only if there is no
more data to read (so checking for 0 is the way to detect end of file).
io = IO::Memory.new "hello"
slice = Bytes.new(4)
io.read(slice) # => 4
slice # => Bytes[104, 101, 108, 108]
io.read(slice) # => 1
slice # => Bytes[111, 101, 108, 108]
io.read(slice) # => 0
Whether the session must negotiate a STARTTLS upgrade on this transport before authentication. Only a plaintext TCP stream does; WebSocket and BOSH transports have no STARTTLS (their security is fixed at connection time by ws/wss or http/https), so the RFC 7590 anti-stripping attempt must not run against them.
The underlying TLS socket when the transport opened one directly (XEP-0368 direct TLS). Nil for plaintext, STARTTLS-managed, WebSocket, and BOSH transports.