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