Módulo: Mongo::supervisión::Subscribable
- Incluido en:
- Mongo::supervisión, Global
- Definido en:
- lib/mongo/supervisión.rb
Overview
Incluye métodos de suscripción comunes entre la supervisión y las suscripciones a eventos globales.
Resumen del método de instancia colapsar
-
#suscribirse(tema, suscriptor) ⇒ objeto
Suscribirse un listener a un tema de evento.
-
#suscriptores ⇒ Hash<String, Object>
Obtén todos los suscriptores.
-
#subscribers?(tema) ⇒ verdadero, falso
Determine si hay suscriptores para un evento en particular.
-
#unsubscribe(topic, subscriber) ⇒ Object
Cancelar la suscripción de un oyente a un tema de eventos.
Detalles del método de instancia
#subscribe(topic, subscriber) ⇒ Objeto
Es posible suscribirse con el mismo listener al mismo tema
Suscribirse un listener a un tema de evento.
varias veces, en cuyo caso el listener será invocado tantas veces como esté suscrito y para desuscribirse serán necesarias el mismo número de llamadas a desuscribirse.
103 104 105 |
# Archivo 'lib/mongo/supervisión.rb', línea 103 def suscribirse(topic, suscriptor) subscribers_for(topic).push(suscriptor) end |
#suscriptores ⇒ Hash<String, objeto>
Obtén todos los suscriptores.
155 156 157 |
# Archivo 'lib/mongo/supervisión.rb', línea 155 def suscriptores @subscribers ||= {} end |
#¿suscriptores?(tema) ⇒ verdadero, falso
Determine si hay suscriptores para un evento en particular.
172 173 174 |
# Archivo 'lib/mongo/supervisión.rb', línea 172 def ¿suscriptores?(topic) !subscribers_for(topic).¿vacío? end |
#unsubscribe(tema, subscriber) ⇒ objeto
El registro global de suscriptores está separado del registro de suscriptores por cliente. El mismo suscriptor puede estar suscrito a eventos de un cliente particular, así como globalmente; darse de baja globalmente no dará de baja a ese suscriptor del cliente al que se suscribió explícitamente.
Actualmente, la lista de suscriptores globales se copia en un cliente cada vez que se crea este cliente. Por lo tanto, cancelar la suscripción de un suscriptor de forma global no tiene efecto en los clientes existentes; seguirán enviando eventos al suscriptor dado de baja.
Cancelar la suscripción de un oyente a un tema de eventos.
Si el suscriptor estaba suscrito al tema del evento varias veces, esta llamada elimina una sola suscripción.
Si el receptor no estaba suscrito al tema, esta operación es una acción sin efectos y no se lanza ninguna excepción.
136 137 138 139 140 141 142 |
# Archivo 'lib/mongo/supervisión.rb', línea 136 def cancelar suscripción(topic, suscriptor) subtítulos = subscribers_for(topic) index = subtítulos.index(suscriptor) return a menos que index subtítulos.delete_at(index) end |