Sha256: 636712e6a7ba46330822eccbfa2612651a7c11d2a6ac28e53994a19f703967b1
Contents?: true
Size: 1.25 KB
Versions: 3
Compression:
Stored size: 1.25 KB
Contents
module Angelo class WebsocketResponder < Responder class << self attr_writer :on_pong def on_pong @on_pong ||= ->(e){} end end def params @params ||= parse_query_string @params end def request= request @params = nil @request = request @websocket = @request.websocket handle_request end def handle_request begin if @response_handler Angelo.log @connection, @request, @websocket, :switching_protocols @bound_response_handler ||= @response_handler.bind @base @websocket.on_pong &WebsocketResponder.on_pong @base.before if @base.respond_to? :before @bound_response_handler[@websocket] @base.after if @base.respond_to? :after else raise NotImplementedError end rescue IOError => ioe warn "#{ioe.class} - #{ioe.message}" close_websocket rescue => e error e.message ::STDERR.puts e.backtrace begin @connection.close rescue Reel::StateError => rcse close_websocket end end end def close_websocket @websocket.close @base.websockets.remove_socket @websocket end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
angelo-0.1.14 | lib/angelo/responder/websocket.rb |
angelo-0.1.13 | lib/angelo/responder/websocket.rb |
angelo-0.1.12 | lib/angelo/responder/websocket.rb |