Class: SockJS::Transports::HTMLFile
- Inherits:
-
ConsumingTransport
- Object
- Endpoint
- SessionEndpoint
- SockJS::Transport
- ConsumingTransport
- SockJS::Transports::HTMLFile
- Defined in:
- lib/sockjs/transports/htmlfile.rb
Constant Summary collapse
- HTML_PREFIX =
<<-EOT.chomp.freeze <!doctype html> <html><head> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> </head><body><h2>Don't panic!</h2> <script> document.domain = document.domain; var c = parent. EOT
- HTML_POSTFIX =
(<<-EOH + (" " * (1024 - HTML_PREFIX.bytesize)) + "\r\n\r\n").freeze ; c.start(); function p(d) {c.message(d);}; window.onload = function() {c.stop();}; </script> EOH
Instance Attribute Summary
Attributes inherited from Endpoint
Attributes included from Endpoint::ClassMethods
Instance Method Summary collapse
- #format_frame(response, frame) ⇒ Object
- #get_session(response) ⇒ Object
- #handle_http_error(request, error) ⇒ Object
- #response_beginning(response) ⇒ Object
- #setup_response(request, response) ⇒ Object
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, #server_key, #session_key
Methods inherited from SessionEndpoint
Methods inherited from Endpoint
#build_error_response, #build_response, #call, #empty_string, #error_content_type, #handle, #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
#format_frame(response, frame) ⇒ Object
62 63 64 65 66 |
# File 'lib/sockjs/transports/htmlfile.rb', line 62 def format_frame(response, frame) raise TypeError.new("Payload must not be nil!") if frame.nil? "<script>\np(#{frame.to_s.to_json});\n</script>\r\n" end |
#get_session(response) ⇒ Object
39 40 41 42 43 44 45 |
# File 'lib/sockjs/transports/htmlfile.rb', line 39 def get_session(response) if response.request.callback.nil? or response.request.callback.empty? raise SockJS::HttpError.new(500, '"callback" parameter required') end super end |
#handle_http_error(request, error) ⇒ Object
51 52 53 54 55 56 57 58 59 60 |
# File 'lib/sockjs/transports/htmlfile.rb', line 51 def handle_http_error(request, error) response = build_response(request) response.status = error.status response.set_no_cache response.set_content_type(:html) SockJS::debug "Built error response: #{response.inspect}" response.write(error.) response end |
#response_beginning(response) ⇒ Object
47 48 49 |
# File 'lib/sockjs/transports/htmlfile.rb', line 47 def response_beginning(response) response.write(HTML_PREFIX + response.request.callback + HTML_POSTFIX) end |
#setup_response(request, response) ⇒ Object
30 31 32 33 34 35 36 37 |
# File 'lib/sockjs/transports/htmlfile.rb', line 30 def setup_response(request, response) response.status = 200 response.set_content_type(:html) response.set_no_cache response.set_session_id(request.session_id) response end |