Sha256: bfa38bfaba89d842f853448c47e1948ff3cac99b317bf456137c13f5ef01e524
Contents?: true
Size: 1.99 KB
Versions: 1
Compression:
Stored size: 1.99 KB
Contents
module Rack module WebSocket module Handler class Base autoload :Connection, "#{ROOT_PATH}/websocket/handler/base/connection" def on_open set_parent_instance_variables @parent.on_open(@env) end # Fired when a client is connected. def on_message(msg) set_parent_instance_variables @parent.on_message(@env, msg) end # Fired when a message from a client is received. def on_close set_parent_instance_variables @parent.on_close(@env) end # Fired when a client is disconnected. def on_error(error) set_parent_instance_variables @parent.on_error(@env, error) end # Fired when error occurs. # Set application as parent and forward options def initialize(parent, options = {}) @parent = parent @options = options[:backend] || {} end def set_parent_instance_variables set_env_instance_variable set_session_instance_variable end def set_env_instance_variable @parent.instance_variable_set("@env", @env) end def set_session_instance_variable session = Noodles.use_memached_as_session_storage ? Noodles::MemcachedSession.new(@env) : @env['rack.session'] @parent.instance_variable_set("@session", session) end # Implemented in subclass def call(env) raise 'Not implemented' end # Implemented in subclass def send_data(data) raise 'Not implemented' end # Implemented in subclass def close_websocket raise 'Not implemented' end protected # Standard async response def async_response [-1, {}, []] end # Standard 400 response def failure_response [ 400, {'Content-Type' => 'text/plain'}, [ 'Bad request' ] ] end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
websocket-rack-noodles-0.4.2 | lib/rack/websocket/handler/base.rb |