Class: SockJS::Transport
Instance Attribute Summary
Attributes inherited from Endpoint
#connection, #options
#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
217
218
219
220
221
222
223
224
225
226
|
# File 'lib/sockjs/transport.rb', line 217
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
199
200
201
202
203
204
205
206
207
208
209
210
211
212
|
# File 'lib/sockjs/transport.rb', line 199
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
228
229
230
231
232
233
234
235
236
|
# File 'lib/sockjs/transport.rb', line 228
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
248
249
250
|
# File 'lib/sockjs/transport.rb', line 248
def request_data(request)
request.data.string
end
|
#response_beginning(response) ⇒ Object
214
215
|
# File 'lib/sockjs/transport.rb', line 214
def response_beginning(response)
end
|
#server_key(response) ⇒ Object
238
239
240
241
|
# File 'lib/sockjs/transport.rb', line 238
def server_key(response)
request = response.request
(request.env['rack.routing_args'] || {})[:server_key]
end
|
#session_key(response) ⇒ Object
243
244
245
246
|
# File 'lib/sockjs/transport.rb', line 243
def session_key(response)
request = response.request
(request.env['rack.routing_args'] || {})[:session_key]
end
|