Clase: Mongo::Socket Privado

Hereda:
Objeto
  • Objeto
Mostrar todo
Incluye:
Socket::Constantes
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. Debe evitar usarla siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.

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

Desde:

  • 2.0.0

Subclases conocidas directas

SSL, TCP, Unix

Definido en el espacio de nombres

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

Colapso delresumen constante

SSL_ERROR =, SSL_ERROR =

Esta constante forma parte de una API privada. Debe evitar usarla siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.

Obsoleto.

Mensaje de error para excepciones relacionadas con TLS.

Desde:

  • 2.0.0

'Esposible que MongoDB no esté configurado con soporte TLS'.freeze
ERROR DE TIEMPO DE ESPERA =

Esta constante forma parte de una API privada. Debe evitar usarla siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.

Obsoleto.

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

Desde:

  • 2.0.0

'Seagotó el tiempo de solicitud de socket'.freeze
TIEMPO DE ESPERA_PAQUETE =

Esta constante forma parte de una API privada. Debe evitar usarla siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.

La directiva del paquete para los tiempos de espera.

Desde:

  • 2.0.0

'l_2'.freeze
TAMAÑO_DE_TROZO_DE_ESCRITURA =

Esta constante forma parte de una API privada. Debe evitar usarla siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.

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

Desde:

  • 2.0.0

65536

Colapso delresumen de atributos de instancia

Colapso del resumen del método de instancia

Detalles del constructor

#inicializar(tiempo de espera, opciones) ⇒ Socket

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Inicializa atributos de socket comunes.

Parámetros:

  • tiempo de espera (Flotar) -

    El valor de tiempo de espera del socket.

  • opciones (Hash)

    Las opciones.

Opciones Hash(opciones):

  • :tiempo de espera de conexión (Flotar)

    Tiempo de espera de conexión.

  • :dirección_de_conexión ( DIRECCIÓN)

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

  • :generación_de_conexión (Entero)

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

  • :monitor (true | false)

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

  • :tubo (IO)

    El descriptor de archivo para que el extremo de lectura de la tubería escuche durante la llamada del sistema de selección cuando lee desde el socket.

Desde:

  • 2.0.0



72
73
74
75
# Archivo 'lib/mongo/socket.rb', línea 72

def inicializar(tiempo de espera, opciones)
  @se acabó el tiempo = tiempo de espera
  @opciones = opciones
end

Detalles de los atributos de instancia

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

Devuelve:

  • (Entero)

    familia El tipo de familia anfitriona.

Desde:

  • 2.0.0



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

def familia
  @familia
end

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

Devuelve:

  • (Hash)

    Las opciones.

Desde:

  • 2.0.0



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

def opciones
  @opciones
end

#socketSocket (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 el socket El socket envuelto.

Devuelve:

  • (Enchufe)

    zócalo El zócalo envuelto.

Desde:

  • 2.0.0



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

def Socket
  @socket
end

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

Devuelve:

  • (Flotar) -

    timeout El tiempo de espera del socket.

Desde:

  • 2.0.0



87
88
89
# Archivo 'lib/mongo/socket.rb', línea 87

def tiempo de espera
  @se acabó el tiempo
end

Detalles del método de instancia

#¿vivo?verdadero, falso

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Obsoleto.

Utilice #connectable? en la conexión.

¿Está activa la conexión del socket?

Ejemplos:

¿El socket está activo?

socket.alive?

Devuelve:

  • (verdadero,falso)

    Si el socket está activo.

Desde:

  • 2.0.0



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

def alive?
  calcetín_arr = [ @socket ]
  Si Kernel::Seleccione(calcetín_arr, nulo, calcetín_arr, 0)
    # Se supone que la llamada eof? debe regresar inmediatamente ya que 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
      Se acabó el tiempo.tiempo de espera(0.1) hacer
        ¿de?
      end
    rescate ::Se acabó el tiempo::Error
      true
    end
  else
    true
  end
end

#cerrarverdadero

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Cierre el zócalo.

Ejemplos:

Cierre el zócalo.

socket.close

Devuelve:

  • (verdadero) -

    Siempre verdadero.

Desde:

  • 2.0.0



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

def cerrar
  begin
    # A veces parece que la llamada de atención puede durar mucho tiempo.
    ::Se acabó el tiempo.tiempo de espera(5) hacer
      @socket&.cerrar
    end
  rescate
    # Silenciar todos los errores
  end
  true
end

#¿conectable?verdadero

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Obsoleto.

Solo por compatibilidad con versiones anteriores, no utilizar.

Devuelve:

  • (verdadero) -

    Siempre verdadero.

Desde:

  • 2.0.0



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

def ¿conectable?
  true
end

#dirección_de_conexiónDirección

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



92
93
94
# Archivo 'lib/mongo/socket.rb', línea 92

def dirección de conexión
  opciones[:dirección_de_conexión]
end

#generación_de_conexiónEntero

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

Devuelve:

  • (Entero)

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

Desde:

  • 2.0.0



100
101
102
# Archivo 'lib/mongo/socket.rb', línea 100

def generación de conexión
  opciones[:generación_de_conexión]
end

#eof?Boolean

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Comprueba si este socket ha alcanzado el EOF. Se utiliza principalmente para comprobar su actividad.

Devuelve:

  • (Booleano)

Desde:

  • 2.0.5



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

def ¿de?
  @socket.¿de?
rescate IOError, SystemCallError
  true
end

#obtiene(*args) ⇒ Objeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Los delegados llegan al socket subyacente.

Ejemplos:

Obtenga la siguiente línea.

socket.gets(10)

Parámetros:

  • args (Matriz<Object>)

    Los argumentos para pasar.

Devuelve:

  • (Objeto) -

    Los bytes devueltos.

Desde:

  • 2.0.0



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

def consigue(*args)
  excepciones de mapa hacer
    @socket.consigue(*args)
  end
end

#monitor?verdadero | falso

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

Devuelve:

  • (verdadero | falso)

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

Desde:

  • 2.0.0



108
109
110
# Archivo 'lib/mongo/socket.rb', línea 108

def ¿monitor?
  !!opciones[:monitor]
end

#pipeIO

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

escuchar durante la llamada del sistema de selección cuando se lee desde el socket.

Devuelve:

  • (IO)

    El descriptor de archivo para el extremo de lectura de la tubería a

Desde:

  • 2.0.0



115
116
117
# Archivo 'lib/mongo/socket.rb', línea 115

def pipe
  opciones[:tubo]
end

#leer(longitud, socket_timeout: nulo, tiempo de espera: nulo) ⇒ Objeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Leerá todos los datos del socket para el número de bytes indicado. Si no se devuelven datos, se generará una excepción.

Ejemplos:

Lee todos los datos solicitados del socket.

socket.read(4096)

Parámetros:

  • longitud (Entero)

    El número de bytes a leer.

  • tiempo de espera del socket (Numérico) (predeterminado: nulo)

    El tiempo de espera que se utilizará para cada fragmento leído, mutuamente excluyente a timeout.

  • tiempo de espera (Numérico) (predeterminado: nulo)

    El tiempo de espera total para toda la operación de lectura, mutuamente excluyente a socket_timeout.

Devuelve:

  • (Objeto) -

    Los datos del socket.

Aumentos:

  • (Mongo::SocketError)

    Si no se devuelven todos los datos.

Desde:

  • 2.0.0



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

def Lea(longitud, socket_timeout: nulo, timeout: nulo)
  Si !tiempo de espera del socket.nil? && !tiempo de espera.nil?
    propagar ArgumentError, 'Nose pueden configurar ni timeout ni socket_timeout'
  end
  Si !tiempo de espera del socket.nil? || tiempo de espera.nil?
    lectura_sin_tiempo_de_espera(longitud, tiempo de espera del socket)
  else
    lectura_con_tiempo_de_espera(longitud, tiempo de espera)
  end
end

#readbyteObjeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Leer un solo byte del socket.

Ejemplos:

Leer un solo byte.

socket.readbyte

Devuelve:

  • (Objeto) -

    El byte leído.

Desde:

  • 2.0.0



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

def byte de lectura
  excepciones de mapa hacer
    @socket.byte de lectura
  end
end

#resumenCadena

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 un resumen legible para humanos del socket para depuración.

Devuelve:

  • (Cadena) -

    Resumen legible para humanos del socket para depuración.

Desde:

  • 2.0.0



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

def resumen
  fileno = @socket&.fileno rescate '<no socket>' || '<no socket>'
  Si ¿monitor?
    indicador = Si opciones[:empujar]
      'pm'
    else
      'm'
    end
    "#{dirección_de_conexión };#{indicador }; fd=#{número_de_archivo}"
  else
    "#{dirección_de_conexión };c:#{generación_de_conexión };fd=#{número_de_archivo}"
  end
end

#escribir(*args, tiempo de espera: nulo) ⇒ Entero

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Escribe datos en la instancia del socket.

Parámetros:

  • args (Matriz<Object>)

    Los datos que se van a escribir.

  • tiempo de espera (Numérico) (predeterminado: nulo)

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

Devuelve:

  • (Entero)

    La longitud de los bytes escritos en el socket.

Aumentos:

Desde:

  • 2.0.0



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

def guardar(*args, timeout: nulo)
  excepciones de mapa hacer
    hacer_escribir(*args, timeout: tiempo de espera)
  end
end