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::Connection

Resumen de atributos de la instancia colapsar

Resumen del método de instancia colapsar

Detalles de atributo de instancias

#compressorString | nil (solo lectura)

El compresor negociado durante el handshake de esta conexión, si lo hay.

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

Devuelve:

  • (String | nil)

    El compresor.

Desde:

  • 2.0.0



34
35
36
# Archivo 'lib/mongo/server/connection_common.rb', línea 34.

def compresor
  @compressor
end

#pidInteger (solo lectura)

Este método es parte de una API privada. Se debe evitar el uso de este método 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



50
51
52
# Archivo 'lib/mongo/server/connection_common.rb', línea 50.

def pid
  @pid
end

Detalles del método de instancia

#¿conectado?true, false

Obsoleto.

Determinar si la conexión está activa actualmente.

Ejemplos:

¿Está la conexión conectada?

connection.connected?

Devuelve:

  • (true, false)

    Si está conectado.

Desde:

  • 2.0.0



44
45
46
# Archivo 'lib/mongo/server/connection_common.rb', línea 44.

def ¿conectado?
  !!enchufe
end

#handshake_command(handshake_document) ⇒ Protocol::Message

Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.

Compile un comando que se deba utilizar para el proceso de saludo 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



87
88
89
90
91
92
93
94
95
96
97
98
99
100
# Archivo 'lib/mongo/server/connection_common.rb', línea 87.

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 es parte de una API privada. Se debe evitar el uso de este método 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) (valor por defecto: nil)

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

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

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

  • server_api (Hash | nil) (valor por defecto: nil)

    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



65
66
67
68
69
70
71
72
73
74
75
76
# Archivo 'lib/mongo/server/connection_common.rb', línea 65.

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|
    doc.update(speculativeAuthenticate: speculative_auth_doc) si speculative_auth_doc
    doc.update(balanceo de carga: true) si balanceador de carga
  end
end