| Class | Mongo::Server::Monitor::Connection |
| In: |
lib/mongo/server/monitor/connection.rb
|
| Parent: | Object |
This class models the monitor connections and their behavior.
@since 2.0.0
| ISMASTER | = | { :ismaster => 1 }.freeze |
The command used for determining server status.
@since 2.2.0 |
|
| ISMASTER_OP_MSG | = | { :ismaster => 1, '$db' => Database::ADMIN }.freeze |
The command used for determining server status formatted for an OP_MSG
(server versions >= 3.6).
@since 2.5.0 |
|
| ISMASTER_MESSAGE | = | Protocol::Query.new(Database::ADMIN, Database::COMMAND, ISMASTER, :limit => -1) |
The constant for the ismaster
command.
@since 2.2.0 |
|
| ISMASTER_OP_MSG_MESSAGE | = | Protocol::Msg.new([], {}, ISMASTER_OP_MSG) |
The constant for the ismaster command
as an OP_MSG (server versions >= 3.6).
@since 2.5.0 |
|
| ISMASTER_BYTES | = | ISMASTER_MESSAGE.serialize.to_s.freeze |
The raw bytes for the ismaster
message.
@since 2.2.0 |
|
| ISMASTER_OP_MSG_BYTES | = | ISMASTER_OP_MSG_MESSAGE.serialize.to_s.freeze |
The raw bytes for the ismaster OP_MSG
message (server versions >= 3.6).
@since 2.5.0 |
|
| CONNECT_TIMEOUT | = | 10.freeze |
The default time in seconds to timeout a connection attempt.
@since 2.1.2 @deprecated Please use Server::CONNECT_TIMEOUT instead. Will be removed in 3.0.0 |
|
| COMPRESSION | = | 'compression'.freeze |
Key for compression algorithms in the response from the server during
handshake.
@since 2.5.0 |
|
| COMPRESSION_WARNING | = | 'The server has no compression algorithms in common with those requested. ' + 'Compression will not be used.'.freeze |
Warning message that the server has no compression algorithms in common
with those requested
by the client. @since 2.5.0 |
| address | [R] | @return [ Mongo::Address ] address The address to connect to. |
| compressor | [R] |
The compressor, which is determined during the handshake.
@since 2.5.0 |
| options | [R] | @return [ Hash ] options The passed in options. |
Creates a new connection object to the specified target address with the specified options.
The constructor does not perform any I/O (and thus does not create sockets nor handshakes); call connect! method on the connection object to create the network connection.
@note Monitoring connections do not authenticate.
@api private
@example Create the connection.
Connection.new(address)
@note Connection must never be directly instantiated outside of a
Monitor.
@param [ Mongo::Address ] address The address the connection is for. @param [ Hash ] options The connection options.
@option options [ Mongo::Server::Monitor::AppMetadata ] :app_metadata
Metadata to use for handshake. If missing or nil, handshake will not be performed. Although a Mongo::Server::AppMetadata instance will also work, monitoring connections are meant to use Mongo::Server::Monitor::AppMetadata instances in order to omit performing SCRAM negotiation with the server, as monitoring sockets do not authenticate.
@option options [ Array<String> ] :compressors A list of potential
compressors to use, in order of preference. The driver chooses the first compressor that is also supported by the server. Currently the driver only supports 'zlib'.
@option options [ Float ] :connect_timeout The timeout, in seconds,
to use for network operations. This timeout is used for all socket operations rather than connect calls only, contrary to what the name implies,
@since 2.0.0
Establishes a network connection to the target address.
If the connection is already established, this method does nothing.
@example Connect to the host.
connection.connect!
@note This method mutates the connection class by setting a socket if
one previously did not exist.
@return [ true ] If the connection succeeded.
@since 2.0.0
Disconnect the connection.
@example Disconnect from the host.
connection.disconnect!
@note This method mutates the connection by setting the socket to nil
if the closing succeeded.
@return [ true ] If the disconnect succeeded.
@since 2.0.0