Sha256: 7494e217496e77c8e3f5d68b2c284cb1f45dce436d047e9bfd8492bb9e51748f
Contents?: true
Size: 1.62 KB
Versions: 3
Compression:
Stored size: 1.62 KB
Contents
module Rack module WebSocket module Handler class Base autoload :Connection, "#{ROOT_PATH}/websocket/handler/base/connection" def on_open set_env_instance_variable @parent.on_open(@env) end # Fired when a client is connected. def on_message(msg) set_env_instance_variable @parent.on_message(@env, msg) end # Fired when a message from a client is received. def on_close set_env_instance_variable @parent.on_close(@env) end # Fired when a client is disconnected. def on_error(error) set_env_instance_variable @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_env_instance_variable @parent.instance_variable_set("@env", @env) 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
3 entries across 3 versions & 1 rubygems