Class: SockJS::Transport
Instance Attribute Summary
Attributes inherited from Endpoint
#connection, #http_origin, #options, #remote_addr
#method, #prefix
Instance Method Summary
collapse
routing_prefix
Methods inherited from Endpoint
#build_error_response, #build_response, #call, #empty_string, #error_content_type, #format_frame, #handle, #handle_http_error, #initialize, #inspect, #response_class, #setup_response
#add_route, #add_routes, #endpoints, #register, #route_conditions, #routing_prefix
Instance Method Details
#exception_response(request, error, status) ⇒ Object
222
223
224
225
226
227
228
229
230
231
|
# File 'lib/sockjs/transport.rb', line 222
def exception_response(request, error, status)
SockJS::debug("Handling error #{error.inspect}")
response = build_response(request)
response.status = status
response.set_content_type(:plain)
response.set_session_id(request.session_id)
response.write(error.message)
SockJS::debug("Error response: #{response.inspect}")
return response
end
|
#handle_request(request) ⇒ Object
204
205
206
207
208
209
210
211
212
213
214
215
216
217
|
# File 'lib/sockjs/transport.rb', line 204
def handle_request(request)
SockJS::debug({:Request => request, :Transport => self}.inspect)
response = build_response(request)
session = get_session(response)
process_session(session, response)
return response
rescue SockJS::InvalidJSON => error
exception_response(request, error, 500)
rescue SockJS::SessionUnavailableError => error
handle_session_unavailable(request)
end
|
#handle_session_unavailable(request) ⇒ Object
233
234
235
236
237
238
239
240
241
|
# File 'lib/sockjs/transport.rb', line 233
def handle_session_unavailable(request)
SockJS::debug("Handling missing session for #{request.inspect}")
response = build_response(request)
response.status = 404
response.set_content_type(:plain)
response.set_session_id(request.session_id)
response.write("Session is not open!")
return response
end
|
#request_data(request) ⇒ Object
253
254
255
|
# File 'lib/sockjs/transport.rb', line 253
def request_data(request)
request.data.string
end
|
#response_beginning(response) ⇒ Object
219
220
|
# File 'lib/sockjs/transport.rb', line 219
def response_beginning(response)
end
|
#server_key(response) ⇒ Object
243
244
245
246
|
# File 'lib/sockjs/transport.rb', line 243
def server_key(response)
request = response.request
(request.env['rack.routing_args'] || {})[:server_key]
end
|
#session_key(response) ⇒ Object
248
249
250
251
|
# File 'lib/sockjs/transport.rb', line 248
def session_key(response)
request = response.request
(request.env['rack.routing_args'] || {})[:session_key]
end
|