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

#familiaEntero (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

#opcionesHash (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

#socketSocket (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

#timeoutFloat (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

#cerrarverdadero

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_addressDirecció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ónInteger

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

#pipeIO

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

#readbyteObjeto

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

#summaryString

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