Class: SockJS::Transports::JSONP
- Inherits:
-
PollingConsumingTransport
- Object
- Endpoint
- SessionEndpoint
- SockJS::Transport
- ConsumingTransport
- PollingConsumingTransport
- SockJS::Transports::JSONP
- 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
- #error_content_type ⇒ Object
- #format_frame(response, payload) ⇒ Object
- #get_session(response) ⇒ Object
- #setup_response(request, response) ⇒ Object
Methods inherited from PollingConsumingTransport
Methods inherited from ConsumingTransport
#closing_frame, #finish_response, #heartbeat_frame, #messages_frame, #opening_frame, #process_session, #request_closed, #send_data
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, #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
#error_content_type ⇒ Object
10 11 12 |
# File 'lib/sockjs/transports/jsonp.rb', line 10 def error_content_type :html end |
#format_frame(response, payload) ⇒ Object
31 32 33 34 35 36 37 |
# File 'lib/sockjs/transports/jsonp.rb', line 31 def format_frame(response, payload) raise TypeError.new("Payload must not be nil!") if payload.nil? # Yes, JSONed twice, there isn't a better way, we must pass # a string back, and the script, will be evaled() by the browser. "#{response.request.callback}(#{super.chomp.to_json});\r\n" end |
#get_session(response) ⇒ Object
23 24 25 26 27 28 29 |
# File 'lib/sockjs/transports/jsonp.rb', line 23 def get_session(response) if response.request.callback super else raise HttpError.new(500, '"callback" parameter required') end end |
#setup_response(request, response) ⇒ Object
14 15 16 17 18 19 20 21 |
# File 'lib/sockjs/transports/jsonp.rb', line 14 def setup_response(request, response) response.status = 200 response.set_content_type(:javascript) response.set_access_control(request.origin) response.set_no_cache response.set_session_id(request.session_id) return response end |