Clase: Mongo::Socket Privado

Hereda:
Objeto
  • Objeto
Mostrar todo
Incluye:
Socket: :Constants
Definido en:
lib/mongo/socket.rb,
lib/mongo/socket/ssl.rb,
lib/mongo/socket/tcp.rb,
lib/mongo/socket/unix.rb,
lib/mongo/socket/ocsp_cache.rb,
lib/mongo/socket/ocsp_verifier.rb

Overview

Esta clase forma parte de una API privada. Evita usar esta clase si es posible, ya que puede ser eliminada o modificada en el futuro.

Proporciona datos adicionales sobre los sockets para el uso del driver.

Desde:

  • 2.0.0

Definido bajo Namespace

Modules: OcspCache clase: OcspVerifier, SSL, TCP, Unix

Resumen de constantes colapsar

SSL_ERROR =, SSL_ERROR =

Esta constante es parte de una API privada. Deberías evitar usar esta constante si es posible, ya que podría ser retirada o cambiada en el futuro.

Obsoleto.

Mensaje de error para excepciones relacionadas con TLS.

Desde:

  • 2.0.0

'Es posible que MongoDB no esté configurado con soporte TLS'
TIMEOUT_ERROR =

Esta constante es parte de una API privada. Deberías evitar usar esta constante si es posible, ya que podría ser retirada o cambiada en el futuro.

Obsoleto.

Mensaje de error para tiempos de espera en llamadas de socket.

Desde:

  • 2.0.0

'La solicitud de socket agotó el tiempo de espera'
TIMEOUT_PACK =

Esta constante es parte de una API privada. Deberías evitar usar esta constante si es posible, ya que podría ser retirada o cambiada en el futuro.

La directiva de paquete para tiempos de espera.

Desde:

  • 2.0.0

'l_2'
WRITE_CHUNK_SIZE =

Esta constante es parte de una API privada. Deberías evitar usar esta constante si es posible, ya que podría ser retirada o cambiada en el futuro.

Guardar datos en el socket en fragmentos de este tamaño.

Desde:

  • 2.0.0

65_536

Resumen de atributos de la instancia colapsar

Resumen del método de instancia colapsar

Detalles del Constructor

#initialize(timeout, options) ⇒ Socket

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.

Inicializa los atributos comunes del socket.

Parámetros:

  • tiempo de espera (Float) —

    El valor de tiempo de espera del socket.

  • opciones (encriptada) —

    Las opciones.

Opciones Hash (options):

  • timeout_conexión (Flotante) —

    Tiempo de espera de conexión.

  • Dirección de conexión (Dirección) —

    Dirección de la conexión que creó este socket.

  • :connection_generation (Integer) —

    Generación de la conexión (para conexiones que no son de supervisión) que creó este socket.

  • supervisar (true | false) —

    Si este socket fue creado por una conexión de supervisión.

  • pipe (IO) —

    El descriptor de archivo para la terminal de lectura del pipe al que se le debe hacer listening durante la llamada de sistema select cuando se lee del socket.

Desde:

  • 2.0.0



70
71
72
73
# Archivo 'lib/mongo/socket.rb', línea 70

def inicializar(tiempo de espera, opciones)
  @timeout = tiempo de espera
  @options = opciones
end

Detalles de atributo de instancias

#familia ⇒ Entero (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 la familia El tipo de familia anfitriona.

Devuelve:

  • (Número entero) —

    familia El tipo de familia host.

Desde:

  • 2.0.0



76
77
78
# Archivo 'lib/mongo/socket.rb', línea 76

def familia
  @family
end

#opciones ⇒ Hash (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 las opciones.

Devuelve:

  • (encriptada) —

    Las opciones.

Desde:

  • 2.0.0



82
83
84
# Archivo 'lib/mongo/socket.rb', línea 82

def opciones
  @options
end

#socket ⇒ Socket (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 socket El socket envuelto.

Devuelve:

  • (Socket) —

    socket El socket envuelto.

Desde:

  • 2.0.0



79
80
81
# Archivo 'lib/mongo/socket.rb', línea 79

def enchufe
  @socket
end

#timeout ⇒ Float (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 timeout. El tiempo de espera del socket.

Devuelve:

  • (Float) —

    timeout El tiempo de espera del socket.

Desde:

  • 2.0.0



85
86
87
# Archivo 'lib/mongo/socket.rb', línea 85

def tiempo de espera
  @timeout
end

Detalles del método de instancia

#¿vivo? ⇒ verdadero, falso

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.

Obsoleto.

Usa #connectable? en la conexión en su lugar.

¿Está viva la conexión de socket?

Ejemplos:

¿Está el socket activo?

socket.alive?

Devuelve:

  • (true, false) —

    Si el socket está activo.

Desde:

  • 2.0.0



146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
# Archivo 'lib/mongo/socket.rb', línea 146

def alive?
  sock_arr = [ @socket ]
  si Kernel.Seleccionar(sock_arr, nulo, sock_arr, 0)
    # Se supone que eof? debe llamar inmediatamente desde select
    # indica que el socket es legible. Sin embargo, si @socket es un TLS
    # socket, ¿eof? puede bloquear de todos modos - ver RUBY-2140.
    begin
      Tiempo de espera.tiempo de espera(0.1) hacer
        eof?
      end
    rescate ::Tiempo de espera::Error
      true
    end
  else
    true
  end
end

#cerrar ⇒ verdadero

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.

Cierra el enchufe.

Ejemplos:

Cierra el enchufe.

socket.close

Devuelve:

  • (cierto) —

    Siempre verdadero.

Desde:

  • 2.0.0



172
173
174
175
176
177
178
179
180
181
182
# Archivo 'lib/mongo/socket.rb', línea 172

def Cerrar
  begin
    # A veces parece que el margen de error puede prolongarse durante mucho tiempo
    ::Tiempo de espera.tiempo de espera(5) hacer
      @socket&.Cerrar
    end
  rescate StandardError
    # Silenciar todos los errores
  end
  true
end

#¿conectable? ⇒ true

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.

Obsoleto.

Solo por compatibilidad con versiones anteriores, no lo utilices.

Devuelve:

  • (cierto) —

    Siempre verdadero.

Desde:

  • 2.0.0



271
272
273
# Archivo 'lib/mongo/socket.rb', línea 271

def ¿connectable?
  true
end

#connection_address ⇒ Dirección

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 la dirección de la conexión que creó este socket.

Devuelve:

  • (Dirección) —

    Dirección de la conexión que creó este socket.

Desde:

  • 2.0.0



90
91
92
# Archivo 'lib/mongo/socket.rb', línea 90

def connection_address
  opciones[Dirección de conexión]
end

#generation_conexión ⇒ Integer

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 la generación de la conexión (para conexiones que no son de supervisión) que creó este socket.

Devuelve:

  • (Número entero) —

    Generación de la conexión (para conexiones que no son de supervisión) que creó este socket.

Desde:

  • 2.0.0



98
99
100
# Archivo 'lib/mongo/socket.rb', línea 98

def connection_generation
  opciones[:connection_generation]
end

#eof? ⇒ Boolean

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.

Prueba si este socket ha alcanzado EOF. Utilizado principalmente para verificaciones de actividad.

Devuelve:

  • (booleano)

Desde:

  • 2.0.5



260
261
262
263
264
# Archivo 'lib/mongo/socket.rb', línea 260

def eof?
  @socket.eof?
rescate IOError, SystemCallError
  true
end

#obtiene(*args) ⇒ Objeto

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.

La delegación llega al socket subyacente.

Ejemplos:

Obtén la siguiente línea.

socket.gets(10)

Parámetros:

  • args (arreglo<Object>) —

    Los argumentos que se deben transmitir.

Devuelve:

  • (objeto) —

    Los bytes devueltos.

Desde:

  • 2.0.0



194
195
196
197
198
# Archivo 'lib/mongo/socket.rb', línea 194

def recibe(*args)
  map_exceptions hacer
    @socket.recibe(*args)
  end
end

#supervisar? ⇒ verdadero | falso

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 si este socket fue creado por una conexión de supervisión.

Devuelve:

  • (true | false) —

    Si este socket fue creado por una conexión de supervisión.

Desde:

  • 2.0.0



106
107
108
# Archivo 'lib/mongo/socket.rb', línea 106

def supervisar?
  !!opciones[supervisar]
end

#pipe ⇒ IO

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.

escuchar durante la llamada al sistema select al leer desde el socket.

Devuelve:

  • (IO) —

    El descriptor de archivo para el extremo de lectura de la pipe a

Desde:

  • 2.0.0



113
114
115
# Archivo 'lib/mongo/socket.rb', línea 113

def pipe
  opciones[pipe]
end

#read(length, socket_timeout: nil, timeout: nil) ⇒ objeto

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.

Leerá todos los datos del socket para la cantidad de bytes proporcionada. Si no se devuelve ningún dato, se generará una excepción.

Ejemplos:

Leer todos los datos solicitados desde el socket.

socket.read(4096)

Parámetros:

  • longitud (Número entero) —

    La cantidad de bytes que se van a leer.

  • socket_timeout (Numérico) (valor por defecto: nil) —

    El tiempo de espera a usar para cada fragmento leído, que se excluye mutuamente con timeout.

  • tiempo de espera (Numérico) (valor por defecto: nil) —

    El tiempo de espera total para toda la operación de lectura, que es mutuamente exclusivo con socket_timeout.

Devuelve:

  • (objeto) —

    Los datos del socket.

Aumenta:

  • (Mongo::SocketError) —

    Si no se recuperan todos los datos.

Desde:

  • 2.0.0



217
218
219
220
221
222
223
224
225
# Archivo 'lib/mongo/socket.rb', línea 217

def Lea(longitud, socket_timeout: nulo, timeout: nulo)
  propagar ArgumentError, 'No se pueden establecer ni timeout ni socket_timeout' si !socket_timeout.nil? && !tiempo de espera.nil?

  si !socket_timeout.nil? || tiempo de espera.nil?
    read_without_timeout(longitud, socket_timeout)
  else
    read_with_timeout(longitud, tiempo de espera)
  end
end

#readbyte ⇒ Objeto

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.

Lee un único byte del socket.

Ejemplos:

Leer un solo byte.

socket.readbyte

Devuelve:

  • (objeto) —

    El byte leído.

Desde:

  • 2.0.0



235
236
237
238
239
# Archivo 'lib/mongo/socket.rb', línea 235

def readbyte
  map_exceptions hacer
    @socket.readbyte
  end
end

#summary → String

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.

Retorna un resumen legible por humanos del socket para depuración.

Devuelve:

  • (string) —

    Resumen legible para humanos del socket para depuración.

Desde:

  • 2.0.0



120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
# Archivo 'lib/mongo/socket.rb', línea 120

def Resumen
  fileno = begin
    @socket&.fileno
  rescate StandardError
    '<no socket>'
  end
  si supervisar?
    indicador = si opciones[:push]
                  'pm'
                else
                  'm'
                end
    "#{connection_address};#{indicator};fd=#{fileno}"
  else
    "#{connection_address};c:#{connection_generation};fd=#{fileno}"
  end
end

#guardar(*args, tiempo de espera: nil) ⇒ Integer

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.

Escribe datos en la instancia del socket.

Parámetros:

  • args (arreglo<Object>) —

    Los datos que se van a escribir.

  • tiempo de espera (Numérico) (valor por defecto: nil) —

    El tiempo de espera total para toda la operación de guardar.

Devuelve:

  • (Número entero) —

    La longitud de los bytes escritos en el socket.

Aumenta:

Desde:

  • 2.0.0



251
252
253
254
255
# Archivo 'lib/mongo/socket.rb', línea 251

def guardar(*args, timeout: nulo)
  map_exceptions hacer
    do_write(*args, timeout: tiempo de espera)
  end
end