From bad9e6d09dd60c2e3552effacf41d5bcfd8d9c24 Mon Sep 17 00:00:00 2001 From: Michael Oberegger Date: Wed, 1 Apr 2026 19:18:01 -0400 Subject: [PATCH 1/2] Optimize MessageBus::Implementation#decode_channel_name --- lib/message_bus.rb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/message_bus.rb b/lib/message_bus.rb index cb927a5c..02b90c28 100644 --- a/lib/message_bus.rb +++ b/lib/message_bus.rb @@ -638,7 +638,11 @@ def encode_channel_name(channel, site_id = nil) end def decode_channel_name(channel) - channel.split(ENCODE_SITE_TOKEN) + if (idx = channel.byteindex(ENCODE_SITE_TOKEN)) + [channel.byteslice(0, idx), channel.byteslice(idx + 3, channel.bytesize - idx - 3)] + else + [channel, nil] + end end def global?(channel) From 3fe4370fcdbcb00957d0789471bb84211f631e43 Mon Sep 17 00:00:00 2001 From: Michael Oberegger Date: Wed, 1 Apr 2026 19:57:15 -0400 Subject: [PATCH 2/2] Use ENCODE_SITE_TOKEN_SIZE constant instead of magic number --- lib/message_bus.rb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/message_bus.rb b/lib/message_bus.rb index 02b90c28..fa0b1324 100644 --- a/lib/message_bus.rb +++ b/lib/message_bus.rb @@ -625,6 +625,7 @@ def client_message_filters private ENCODE_SITE_TOKEN = "$|$" + ENCODE_SITE_TOKEN_SIZE = ENCODE_SITE_TOKEN.bytesize # encode channel name to include site def encode_channel_name(channel, site_id = nil) @@ -639,7 +640,10 @@ def encode_channel_name(channel, site_id = nil) def decode_channel_name(channel) if (idx = channel.byteindex(ENCODE_SITE_TOKEN)) - [channel.byteslice(0, idx), channel.byteslice(idx + 3, channel.bytesize - idx - 3)] + [ + channel.byteslice(0, idx), + channel.byteslice(idx + ENCODE_SITE_TOKEN_SIZE, channel.bytesize - idx - ENCODE_SITE_TOKEN_SIZE) + ] else [channel, nil] end