Clase: Mongo::Server::ConnectionCommon

Hereda:
Objeto
  • Objeto
Mostrar todo
Definido en:
lib/mongo/servidor/conexión_común.rb

Overview

Nota:

Aunque los métodos de este módulo son 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 es parte de la API pública.

Métodos comunes utilizados tanto por conexiones de monitoreo como por conexiones que no lo son.

Desde:

  • 2.0.0

Subclases conocidas directas

ConnectionBase, Monitor::Conexión

Colapso delresumen de atributos de instancia

Colapso del resumen del método de instancia

Detalles de los atributos de instancia

#compresorCadena | nulo (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:

  • ( Cadena| nulo ) —

    El compresor.

Desde:

  • 2.0.0



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

def compresor
  @compressor
end

#pidEntero (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 identificador del proceso cuando se creó la conexión.

Devuelve:

  • (Entero)

    pid El identificador 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á actualmente conectada.

Ejemplos:

¿Está conectada la conexión?

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?
  !!Socket
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 de apretón de manos (BSON::Documento)

    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 protocolo de enlace.

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 comando de apretón de manos(documento de apretón de manos)
  Si documento de apretón de manos['apiVersion'] || documento de apretón de manos['carga equilibrada']
    Protocolo::Msg.Nuevo(
      [], {}, documento de apretón de manos.unir({'$db' => Database::ADMINISTRACIÓN})
    )
  else
    Protocolo::Query.Nuevo(
      Database::ADMINISTRACIÓN,
      Database::DOMINIO,
      documento de apretón de manos,
      :limit => -1
    )
  end
end

#documento_de_apretón_de_manos(metadatos_de_aplicación, documento_de_autenticación_especulativo: nulo, balanceador_de_carga: falso, API_del_servidor: nulo) ⇒ 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.

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

Parámetros:

  • app_metadata (Servidor::AppMetadata)

    Metadatos de la aplicación

  • documento de autorización especulativa (BSON::Documento) (predeterminado: nulo)

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

  • equilibrador de carga (true | false) (predeterminado: falso)

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

  • API del servidor (Hash | nulo) (predeterminado: nulo)

    server_api Versión de la API del servidor.

Devuelve:

  • (BSON::Documento)

    Documento que debe enviarse a un servidor para fines de protocolo de enlace.

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 de apretón de manos(, speculative_auth_doc: nulo, equilibrador de carga: false, API del servidor: nulo)
  serv_api = .API del servidor || API del servidor
  Documento = Si serv_api
               HELLO_DOC.unir(Utils.API del servidor de transformación(serv_api))
             else
               LEGADO_HOLA_DOC
             end
  Documento.unir(.documento validado).grifo hacer |doc|
    Si documento de autorización especulativa
      doc.update(especulativoAutenticar: documento de autorización especulativa)
    end
    Si equilibrador de carga
      doc.update(Carga equilibrada: true)
    end
  end
end