Classe: Mongo::Server::ConnectionCommon

Herda:
Objeto
  • Objeto
mostrar tudo
Definido em:
build/ruby-driver-v2.19/lib/mongo/server/connection_common.rb

Visão geral

Observação:

Embora os métodos deste módulo façam parte da API pública, o fato de esses métodos serem definidos neste módulo e não nas classes que incluem este módulo não faz parte da API pública.

Métodos comuns usados por conexões monitoradas e não monitoradas.

Desde:

  • 2.0.0

Subclasses conhecidas diretas

ConnectionBase, Monitor::Conexão

Recolhimento do Resumo do atributo de instância

Recolhimento do Resumo do método de instância

Detalhes do atributo da instância

#compressorstring | nil (somente leitura)

O compressor negociou durante a negociação para esta conexão, se houver.

Esse atributo é nulo para conexões que ainda não concluíram a negociação e para conexões que não negociaram nenhuma compactação.

Retorna:

  • (string | nil)

    O compressor.

Desde:

  • 2.0.0



37
38
39
# File 'build/ruby-driver-v2.19/lib/mongo/ servidor/connection_common.rb', linha 37

def compressor, compressor
  @compressor
end

#PIDinteiro (somente leitura)

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Retorna PID O ID do processo quando a conexão foi criada.

Retorna:

  • (Inteiro)

    PID O ID do processo quando a conexão foi criada.

Desde:

  • 2.0.0



53
54
55
# File 'build/ruby-driver-v2.19/lib/mongo/ servidor/connection_common.rb', linha 53

def PID
  @pid
end

Detalhes do método de instância

#conectado?true, false

Obsoleto.

Determine se a conexão está atualmente conectada.

Exemplos:

A conexão está conectada?

connection.connected?

Retorna:

  • (verdadeiro, falso)

    Se conectado.

Desde:

  • 2.0.0



47
48
49
# File 'build/ruby-driver-v2.19/lib/mongo/ servidor/connection_common.rb', linha 47

def conectado?
  !!soquete
end

#handshake_command(handshake_document) ⇒ Protocol::Message

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Crie um comando que deve ser usado para a confirmação de conexão.

Parâmetros:

  • handshake_document (BSON::Document)

    Documento que deve ser enviado a um servidor para fins de handshake.

Retorna:

  • (Protocol::Message)

    Comando que deve ser enviado a um servidor para fins de handshake.

Desde:

  • 2.0.0



94
95
96
97
98
99
100
101
102
103
104
105
106
107
# File 'build/ruby-driver-v2.19/lib/mongo/ servidor/connection_common.rb', linha 94

def handshake_command(handshake_document)
  se handshake_document['apiVersion'] || handshake_document['loadBalanced']
    protocolo::Msg.Novo(
      [], {}, handshake_document.mesclar({'$db' => Database::ADMIN})
    )
  mais
    protocolo::Query.Novo(
      Database::ADMIN,
      Database::Comando,
      handshake_document,
      :limit => -1
    )
  end
end

#handshake_document(app_metadata, speculative_auth_doc: nil, load_balancer: false, server_api: nil) ➤ BSON::Document

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Crie um documento que deve ser usado para a confirmação de conexão.

Parâmetros:

  • app_metadata (Server::AppMetadata)

    Metadados do aplicativo

  • speculative_auth_doc (BSON::Document) (padrão para: nil)

    O documento de autenticação especulativo , se houver.

  • load_balancer (verdadeiro | falso) (padrão para: false)

    Se a conexão é com um balancer de carga.

  • server_api (Hash | nulo) (padrão para: nil)

    server_api Versão da API do servidor.

Retorna:

  • (BSON::Document)

    Documento que deve ser enviado a um servidor para fins de handshake.

Desde:

  • 2.0.0



68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# File 'build/ruby-driver-v2.19/lib/mongo/ servidor/connection_common.rb', linha 68

def handshake_document(, speculative_auth_doc: nada, load_balancer: false, server_api: nada)
  serv_api = .server_api || server_api
  documento = se serv_api
               HELLO_DOC.mesclar(Utilidades.transform_server_api(serv_api))
             mais
               LGACY_HELLO_DOC
             end
  documento.mesclar(.validate_document).toque fazer |doc|
    se speculative_auth_doc
      doc.update(speculativeAuthenticate: speculative_auth_doc)
    end
    se load_balancer
      doc.update(loadBalanced: true)
    end
  end
end