Skip to content

Commit

Permalink
Fix for #568 #552 Fix aggregated messages not delivered properly
Browse files Browse the repository at this point in the history
  • Loading branch information
jfarcand committed Aug 29, 2012
1 parent 791a96c commit fe7c2bd
Showing 1 changed file with 23 additions and 11 deletions.
34 changes: 23 additions & 11 deletions modules/jquery/src/main/webapp/jquery/jquery.atmosphere.js
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,7 @@ jQuery.atmosphere = function() {
transport : "polling",
error: null,
request : null,
partialMessage : "",
id : 0
};

Expand Down Expand Up @@ -1124,23 +1125,34 @@ jQuery.atmosphere = function() {
*/
function _trackMessageSize(message, request, response) {
if (request.trackMessageLength) {
// The message length is the included within the message

// If we have found partial message, prepend them.
if (response.partialMessage.length != 0) {
message = response.partialMessage + message;
}

var messages = [];
var messageLength = 0;
var messageStart = message.indexOf(request.messageDelimiter);

var length = response.expectedBodySize;
if (messageStart != -1) {
length = message.substring(0, messageStart);
message = message.substring(messageStart + 1);
response.expectedBodySize = length;
while (messageStart != -1) {
messageLength = message.substring(messageLength, messageStart);
message = message.substring(messageStart + request.messageDelimiter.length, message.length);

if (message.length == 0 || message.length < messageLength) break;

messageStart = message.indexOf(request.messageDelimiter);
messages.push(message.substring(0, messageLength));
}

if (messageStart != -1) {
response.responseBody = message;
} else {
response.responseBody += message;
if (message.length != 0 && messageLength != 0) {
response.partialMessage = messageLength + request.messageDelimiter + message ;
}

if (response.responseBody.length != length) {
if (messages.length != 0) {
response.responseBody =messages.join(request.messageDelimiter);
return false;
} else {
return true;
}
} else {
Expand Down

0 comments on commit fe7c2bd

Please sign in to comment.