lib/em-websocket/handler.rb in em-websocket-0.1.4 vs lib/em-websocket/handler.rb in em-websocket-0.2.0

- old
+ new

@@ -1,19 +1,43 @@ module EventMachine module WebSocket class Handler include Debugger - attr_reader :request + attr_reader :request, :state - def initialize(request, response, debug = false) - @request = request - @response = response + def initialize(connection, request, debug = false) + @connection, @request = connection, request @debug = debug + @state = :handshake + initialize_framing end + def run + @connection.send_data handshake + @state = :connected + @connection.trigger_on_open + end + + # Handshake response def handshake # Implemented in subclass + end + + def receive_data(data) + @data << data + process_data + end + + def close_websocket + # Unless redefined in a subclass, just close the connection + @state = :closed + @connection.close_connection_after_writing + end + + def unbind + @state = :closed + @connection.trigger_on_close end end end end