mirror of
https://github.com/discourse/discourse.git
synced 2026-03-04 01:15:08 +08:00
Allow tracking of client ids published to message bus. Required for when you are targeting publishing at a single browser
28 lines
651 B
Ruby
28 lines
651 B
Ruby
# frozen_string_literal: true
|
|
|
|
module MessageBus::DiagnosticsHelper
|
|
def publish(channel, data, opts = nil)
|
|
id = super(channel, data, opts)
|
|
if @tracking && (@channel.nil? || @channel == channel)
|
|
m = MessageBus::Message.new(-1, id, channel, data)
|
|
m.user_ids = opts[:user_ids] if opts
|
|
m.group_ids = opts[:group_ids] if opts
|
|
m.client_ids = opts[:client_ids] if opts
|
|
@tracking << m
|
|
end
|
|
id
|
|
end
|
|
|
|
def track_publish(channel = nil)
|
|
@channel = channel
|
|
@tracking = tracking = []
|
|
yield
|
|
tracking
|
|
ensure
|
|
@tracking = nil
|
|
end
|
|
end
|
|
|
|
module MessageBus
|
|
extend MessageBus::DiagnosticsHelper
|
|
end
|