Clase: Mongo::Server::ConnectionCommon

Hereda:
Objeto
  • Objeto
Mostrar todo
Definido en:
lib/mongo/servidor/connection_common.rb

Overview

Nota:

Aunque los métodos de este módulo forman parte de la API pública, el hecho de que estos métodos estén definidos en este módulo y no en las clases que incluyen este módulo no forma parte de la API pública.

Métodos comunes usados tanto por conexiones de supervisión como por conexiones que no lo son.

Desde:

  • 2.0.0

Subclases conocidas directas

ConnectionBase, Monitor::Conexión

Resumen de atributos de la instancia colapsar

Resumen del método de instancia colapsar

Detalles de los atributos de instancia

#compressorString | nil (solo lectura)

El compresor negoció durante el protocolo de enlace esta conexión, si la hubiera.

Este atributo es nulo para las conexiones que aún no han completado el protocolo de enlace y para las conexiones que no negociaron ninguna compresión.

Devuelve:

  • (String | nil)

    El compresor.

Desde:

  • 2.0.0



37
38
39
# Archivo 'lib/mongo/server/connection_common.rb', línea 37.

def compresor
  @compressor
end

#pidInteger (solo lectura)

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve pid El id del proceso cuando se creó la conexión.

Devuelve:

  • (Número entero)

    pid La identificación del proceso cuando se creó la conexión.

Desde:

  • 2.0.0



53
54
55
# Archivo 'lib/mongo/server/connection_common.rb', línea 53.

def pid
  @pid
end

Detalles del método de instancia

#¿conectado?verdadero, falso

Obsoleto.

Determinar si la conexión está activa actualmente.

Ejemplos:

¿Está la conexión conectada?

connection.connected?

Devuelve:

  • (verdadero,falso)

    Si está conectado.

Desde:

  • 2.0.0



47
48
49
# Archivo 'lib/mongo/server/connection_common.rb', línea 47.

def ¿conectado?
  !!enchufe
end

#handshake_command(handshake_document) ⇒ Protocol::Message

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Construya un comando que se debe utilizar para el protocolo de conexión.

Parámetros:

  • documento_handshake (BSON::Document)

    Documento que debe enviarse a un servidor con el propósito de realizar el protocolo de enlace.

Devuelve:

  • (Protocol::Message)

    Comando que debe enviarse a un servidor para fines de apretón de manos.

Desde:

  • 2.0.0



94
95
96
97
98
99
100
101
102
103
104
105
106
107
# Archivo 'lib/mongo/server/connection_common.rb', línea 94.

def handshake_command(documento_handshake)
  si documento_handshake['apiVersion'] || documento_handshake['balanceada']
    protocolo::Msg.Nuevo(
      [], {}, documento_handshake.fusionar({'$db' => Database::ADMIN})
    )
  else
    protocolo::Query.Nuevo(
      Database::ADMIN,
      Database::Comando,
      documento_handshake,
      :limit => -1
    )
  end
end

#handshake_document(app_metadata, speculative_auth_doc: nil, load_balancer: false, server_api: nil) ⇒ BSON::documento

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Compile un documento que debe utilizarse para el saludo de conexión.

Parámetros:

  • app_metadata (Server::AppMetadata)

    Metadatos de la aplicación

  • speculative_auth_doc (BSON::Document) (predeterminado: nulo)

    El documento de autenticación especulativa, si lo hubiera.

  • equilibrador de carga (true | false) (por defecto: false)

    Si la conexión es a un balanceador de carga.

  • server_api (Hash | nil) (predeterminado: nulo)

    server_api Versión de la API del servidor.

Devuelve:

  • (BSON::Document)

    Documento que se debe enviar a un servidor con fines de handshake.

Desde:

  • 2.0.0



68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# Archivo 'lib/mongo/server/connection_common.rb', línea 68.

def documento_handshake(, speculative_auth_doc: nulo, equilibrador de carga: false, server_api: nulo)
  serv_api = .server_api || server_api
  Documento = si serv_api
               HELLO_DOC.fusionar(Utils.transform_server_api(serv_api))
             else
               HELLO_DOC_ANTIGUO
             end
  Documento.fusionar(.documento validado).tocar hacer |doc|
    si speculative_auth_doc
      doc.update(speculativeAuthenticate: speculative_auth_doc)
    end
    si equilibrador de carga
      doc.update(Carga equilibrada: true)
    end
  end
end