Class: SockJS::DeliveryTransport

Inherits:
Transport show all
Defined in:
lib/sockjs/transport.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 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, #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

#extract_message(request) ⇒ Object



332
333
334
335
336
# File 'lib/sockjs/transport.rb', line 332

def extract_message(request)
  body = request.data.read
  raise "Payload expected." if body.empty?
  return body
end

#get_session(response) ⇒ Object



346
347
348
349
350
351
352
353
354
355
# File 'lib/sockjs/transport.rb', line 346

def get_session(response)
  begin
    session = connection.get_session(session_key(response))
    response_beginning(response)
    return session
  rescue KeyError
    SockJS::debug("Missing session for #{session_key(response)} - invalid request")
    raise SessionUnavailableError
  end
end

#process_session(session, response) ⇒ Object



326
327
328
329
330
# File 'lib/sockjs/transport.rb', line 326

def process_session(session, response)
  session.receive_message(extract_message(response.request))

  successful_response(response)
end

#setup_response(response) ⇒ Object



338
339
340
# File 'lib/sockjs/transport.rb', line 338

def setup_response(response)
  response.status = 204
end

#successful_response(response) ⇒ Object



342
343
344
# File 'lib/sockjs/transport.rb', line 342

def successful_response(response)
  response.finish
end