diff --git a/lib/s2/connection.rb b/lib/s2/connection.rb index 77de7cf..9433992 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 @@ -24,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 @@ -46,18 +56,19 @@ 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.send(data) + @ws.write(data) + + @logger.info("Sent message: #{data}") end def close(message: nil) send_raw_message(message) if message @ws.close + + @logger.info("Session closed for '#{@context}'") end def notify_closed(rm_id) 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