var OSRF_STATUS_CONTINUE = 100;
var OSRF_STATUS_OK = 200;
var OSRF_STATUS_ACCEPTED = 202;
+var OSRF_STATUS_NOCONTENT = 204;
var OSRF_STATUS_COMPLETE = 205;
+var OSRF_STATUS_PARTIAL = 206;
var OSRF_STATUS_REDIRECTED = 307;
var OSRF_STATUS_BADREQUEST = 400;
var OSRF_STATUS_UNAUTHORIZED = 401;
this.params = args.params;
this.timeout = args.timeout;
this.response_queue = [];
+ this.part_response_buffer = '';
this.complete = false;
};
var req = null;
+ var payload = osrf_msg.payload();
+ var status = payload.statusCode();
+ var status_text = payload.status();
+
if(osrf_msg.type() == OSRF_MESSAGE_TYPE_STATUS) {
- var payload = osrf_msg.payload();
- var status = payload.statusCode();
- var status_text = payload.status();
if(status == OSRF_STATUS_COMPLETE) {
req = ses.find_request(osrf_msg.threadTrace());
}
if(osrf_msg.type() == OSRF_MESSAGE_TYPE_RESULT) {
+
req = ses.find_request(osrf_msg.threadTrace());
if(req) {
- req.response_queue.push(osrf_msg.payload());
+ if (status == OSRF_STATUS_PARTIAL) {
+ req.part_response_buffer += payload.content()
+ return; // we're just collecting a big chunked payload
+ } else if (status == OSRF_STATUS_NOCONTENT) {
+ payload.content( JSON2js(req.part_response_buffer) );
+ payload.statusCode( OSRF_STATUS_OK );
+ req.part_response_buffer = '';
+ }
+ req.response_queue.push(payload);
if(callbacks.onresponse)
return callbacks.onresponse(req);
}