From bbc0a5ebce18b069688094318531bf282514ab89 Mon Sep 17 00:00:00 2001 From: Bob Forma <1178544+bforma@users.noreply.github.com> Date: Tue, 17 Sep 2024 15:15:27 +0200 Subject: [PATCH 1/4] Rename send to write Because async-websocket uses that method. --- lib/s2/connection.rb | 2 +- spec/support/mock_web_socket_client.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/s2/connection.rb b/lib/s2/connection.rb index 77de7cf..46e802e 100644 --- a/lib/s2/connection.rb +++ b/lib/s2/connection.rb @@ -52,7 +52,7 @@ def send_message(message_class, payload) def send_raw_message(data) @logger.info("Send raw message: #{data}") - @ws.send(data) + @ws.write(data) end def close(message: nil) diff --git a/spec/support/mock_web_socket_client.rb b/spec/support/mock_web_socket_client.rb index bafa969..d8a5e47 100644 --- a/spec/support/mock_web_socket_client.rb +++ b/spec/support/mock_web_socket_client.rb @@ -11,7 +11,7 @@ def on(type, &blk) instance_variable_set("@on#{type}", blk) end - def send(message) + def write(message) @sent_messages << message end From e16df006ed11de2e1f0173809e3429f200b6a36a Mon Sep 17 00:00:00 2001 From: Bob Forma <1178544+bforma@users.noreply.github.com> Date: Tue, 17 Sep 2024 15:15:50 +0200 Subject: [PATCH 2/4] Add ::open method --- lib/s2/connection.rb | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lib/s2/connection.rb b/lib/s2/connection.rb index 46e802e..6ead60b 100644 --- a/lib/s2/connection.rb +++ b/lib/s2/connection.rb @@ -14,6 +14,14 @@ class Connection end end + class << self + def open(ws, context) + new(ws).tap do |connection| + connection.open(context) + end + end + end + def initialize(ws, logger: Rails.logger) @ws = ws @logger = logger From 77b72c112ae25536289688b2629d3a7e4f1f0734 Mon Sep 17 00:00:00 2001 From: Bob Forma <1178544+bforma@users.noreply.github.com> Date: Tue, 17 Sep 2024 15:15:59 +0200 Subject: [PATCH 3/4] Log session opening/closing --- lib/s2/connection.rb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/s2/connection.rb b/lib/s2/connection.rb index 6ead60b..830f0c4 100644 --- a/lib/s2/connection.rb +++ b/lib/s2/connection.rb @@ -32,6 +32,8 @@ def initialize(ws, logger: Rails.logger) end def open(context) + @logger.info("Session opened for '#{context}'") + @context = context trigger_on_open(context) end @@ -66,6 +68,8 @@ def send_raw_message(data) def close(message: nil) send_raw_message(message) if message @ws.close + + @logger.info("Session closed for '#{@context}'") end def notify_closed(rm_id) From 4d5bc41610fcd5599cf65a8ab014fc94ead1335d Mon Sep 17 00:00:00 2001 From: Bob Forma <1178544+bforma@users.noreply.github.com> Date: Tue, 17 Sep 2024 15:21:31 +0200 Subject: [PATCH 4/4] Only log sending messages once --- lib/s2/connection.rb | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/lib/s2/connection.rb b/lib/s2/connection.rb index 830f0c4..9433992 100644 --- a/lib/s2/connection.rb +++ b/lib/s2/connection.rb @@ -56,13 +56,12 @@ def send_message(message_class, payload) json = message.to_json send_raw_message(json) trigger_after_send(@context, json) - - @logger.info("Sent message: #{json}") end def send_raw_message(data) - @logger.info("Send raw message: #{data}") @ws.write(data) + + @logger.info("Sent message: #{data}") end def close(message: nil)