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

Desde:

  • 2.0.0

Subclases conocidas directas

SSL, TCP, Unix

Definido bajo Namespace

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 para tiempos de espera en llamadas de socket.

Desde:

  • 2.0.0

'Seagotó el tiempo de solicitud de socket'.freeze
TIMEOUT_PACK =

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 de paquete para tiempos de espera.

Desde:

  • 2.0.0

'l_2'.freeze
WRITE_CHUNK_SIZE =

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

Resumen de atributos de la instancia colapsar

Resumen del método de instancia colapsar

Detalles del constructor

#initialize(timeout, options) ⇒ 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 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):

  • :tiempo de espera de 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 (Entero)

    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



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
  @options = opciones
end

Detalles de los atributos de instancia

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

  • (Número entero)

    familia El tipo de familia host.

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:

  • (encriptada)

    Las opciones.

Desde:

  • 2.0.0



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

def opciones
  @options
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 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 enchufe
  @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:

  • (Float)

    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?
  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
      Se acabó el tiempo.tiempo de espera(0.1) hacer
        eof?
      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.

Cierra el enchufe.

Ejemplos:

Cierra el enchufe.

socket.close

Devuelve:

  • (cierto)

    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 el margen de error puede prolongarse durante 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 lo utilices.

Devuelve:

  • (cierto)

    Siempre verdadero.

Desde:

  • 2.0.0



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

def ¿connectable?
  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 connection_address
  opciones[Dirección de conexión]
end

#generation_conexiónInteger

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



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

def connection_generation
  opciones[:connection_generation]
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.

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

Devuelve:

  • (booleano)

Desde:

  • 2.0.5



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

def eof?
  @socket.eof?
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 (arreglo<Object>)

    Los argumentos que se deben transmitir.

Devuelve:

  • (objeto)

    Los bytes devueltos.

Desde:

  • 2.0.0



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

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

#supervisar?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 supervisión.

Devuelve:

  • (true | false)

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

Desde:

  • 2.0.0



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

def supervisar?
  !!opciones[supervisar]
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 al sistema select al leer 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[pipe]
end

#read(length, socket_timeout: nil, timeout: nil) ⇒ 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:

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) (predeterminado: nulo)

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

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

    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



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 !socket_timeout.nil? && !tiempo de espera.nil?
    propagar ArgumentError, 'No se pueden establecer ni timeout ni socket_timeout'
  end
  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 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 readbyte
  map_exceptions hacer
    @socket.readbyte
  end
end

#summaryString

Este método forma parte de una API privada. Debe evitarlo 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



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 supervisar?
    indicador = si opciones[:empujar]
      'pm'
    else
      'm'
    end
    "#{connection_address};#{indicator};fd=#{fileno}"
  else
    "#{connection_address};c:#{connection_generation};fd=#{fileno}"
  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 (arreglo<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 guardar.

Devuelve:

  • (Número entero)

    La longitud de los bytes escritos en el socket.

Aumenta:

Desde:

  • 2.0.0



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

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