diff --git a/examples/echo.rb b/examples/echo.rb index f49c65f..8f58476 100644 --- a/examples/echo.rb +++ b/examples/echo.rb @@ -5,4 +5,4 @@ ws.onmessage { |msg| ws.send "Pong: #{msg}" } ws.onclose { puts "WebSocket closed" } ws.onerror { |e| puts "Error: #{e.message}" } -end \ No newline at end of file +end diff --git a/lib/em-websocket/connection.rb b/lib/em-websocket/connection.rb index e7cdfce..499d15e 100644 --- a/lib/em-websocket/connection.rb +++ b/lib/em-websocket/connection.rb @@ -14,8 +14,8 @@ def onmessage(&blk); @onmessage = blk; end def trigger_on_message(msg) @onmessage.call(msg) if @onmessage end - def trigger_on_open - @onopen.call if @onopen + def trigger_on_open(request) + @onopen.call(request) if @onopen end def trigger_on_close @onclose.call if @onclose diff --git a/lib/em-websocket/handler.rb b/lib/em-websocket/handler.rb index 7b848ed..cd8e60e 100644 --- a/lib/em-websocket/handler.rb +++ b/lib/em-websocket/handler.rb @@ -15,7 +15,7 @@ def initialize(connection, request, debug = false) def run @connection.send_data handshake @state = :connected - @connection.trigger_on_open + @connection.trigger_on_open @request end # Handshake response diff --git a/lib/em-websocket/handshake04.rb b/lib/em-websocket/handshake04.rb index 4b96226..f200a2a 100644 --- a/lib/em-websocket/handshake04.rb +++ b/lib/em-websocket/handshake04.rb @@ -6,6 +6,7 @@ module WebSocket module Handshake04 def handshake # Required + debug [:request, request] unless key = request['sec-websocket-key'] raise HandshakeError, "Sec-WebSocket-Key header is required" end