Class: SockJS::Transports::EventSource

Inherits:
ConsumingTransport show all
Defined in:
lib/sockjs/transports/eventsource.rb

Instance Attribute Summary

Attributes inherited from Endpoint

#connection, #http_origin, #options, #remote_addr

Attributes included from Endpoint::ClassMethods

#method, #prefix

Instance Method Summary collapse

Methods inherited from ConsumingTransport

#closing_frame, #finish_response, #get_session, #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

routing_prefix

Methods inherited from Endpoint

#build_error_response, #build_response, #call, #empty_string, #error_content_type, #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

#format_frame(response, frame) ⇒ Object

Raises:

  • (TypeError)


23
24
25
26
27
# File 'lib/sockjs/transports/eventsource.rb', line 23

def format_frame(response, frame)
  raise TypeError.new("Payload must not be nil!") if frame.nil?

  ["data: ", frame.to_s, "\r\n\r\n"].join
end

#setup_response(request, response) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/sockjs/transports/eventsource.rb', line 10

def setup_response(request, response)
  response.status = 200

  response.set_content_type(:event_stream)
  response.set_session_id(request.session_id)
  response.set_no_cache
  response.write_head

  # Opera needs to hear two more initial new lines.
  response.write("\r\n")
  response
end