Class: Events::Subscribers::EvictionBroadcaster

Inherits:
Object
  • Object
show all
Includes:
Events::Subscriber
Defined in:
lib/events/subscribers/eviction_broadcaster.rb

Overview

Broadcasts eviction cutoff to connected WebSocket clients after Mneme advances the boundary. Clients drop all messages above the cutoff (id <= evict_above_id) — older messages at the top of the chat view.

Examples:

Registering at boot

Events::Bus.subscribe(Events::Subscribers::EvictionBroadcaster.new) { |event|
  event[:name] == "anima.eviction.completed"
}

Instance Method Summary collapse

Instance Method Details

#emit(event) ⇒ Object

Parameters:

  • event (Hash)

    Rails.event notification hash



17
18
19
20
21
22
23
# File 'lib/events/subscribers/eviction_broadcaster.rb', line 17

def emit(event)
  payload = event[:payload]
  ActionCable.server.broadcast(
    "session_#{payload[:session_id]}",
    {"action" => "eviction", "evict_above_id" => payload[:evict_above_id]}
  )
end