Class: SockJS::Transports::JSONPSend
- Inherits:
-
DeliveryTransport
- Object
- Endpoint
- SessionEndpoint
- SockJS::Transport
- DeliveryTransport
- SockJS::Transports::JSONPSend
- Defined in:
- lib/sockjs/transports/jsonp.rb
Instance Attribute Summary
Attributes inherited from Endpoint
#connection, #http_origin, #options, #remote_addr
Attributes included from Endpoint::ClassMethods
Instance Method Summary collapse
- #empty_payload ⇒ Object
- #error_content_type ⇒ Object
-
#extract_message(request) ⇒ Object
Handler.
- #setup_response(request, response) ⇒ Object
- #successful_response(response) ⇒ Object
Methods inherited from DeliveryTransport
#get_session, #process_session
Methods inherited from SockJS::Transport
#exception_response, #handle_request, #handle_session_unavailable, #request_data, #response_beginning, #server_key, #session_key
Methods inherited from SessionEndpoint
Methods inherited from Endpoint
#build_error_response, #build_response, #call, #empty_string, #format_frame, #handle, #handle_http_error, #handle_request, #initialize, #inspect, #response_class
Methods included from Endpoint::ClassMethods
#add_route, #add_routes, #endpoints, #register, #route_conditions, #routing_prefix
Constructor Details
This class inherits a constructor from SockJS::Endpoint
Instance Method Details
#empty_payload ⇒ Object
79 80 81 |
# File 'lib/sockjs/transports/jsonp.rb', line 79 def empty_payload raise SockJS::HttpError.new(500, "Payload expected.") end |
#error_content_type ⇒ Object
75 76 77 |
# File 'lib/sockjs/transports/jsonp.rb', line 75 def error_content_type :html end |
#extract_message(request) ⇒ Object
Handler.
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/sockjs/transports/jsonp.rb', line 44 def (request) if request.content_type == "application/x-www-form-urlencoded" raw_data = request.data.read || empty_payload begin data = Hash[URI.decode_www_form(raw_data)] data = data.fetch("d") rescue KeyError empty_payload end else data = request.data.read end if data.nil? or data.empty? empty_payload end data end |
#setup_response(request, response) ⇒ Object
64 65 66 67 68 |
# File 'lib/sockjs/transports/jsonp.rb', line 64 def setup_response(request, response) response.status = 200 response.set_content_type(:plain) response.set_session_id(request.session_id) end |
#successful_response(response) ⇒ Object
70 71 72 73 |
# File 'lib/sockjs/transports/jsonp.rb', line 70 def successful_response(response) response.write("ok") response.finish end |