diff options
author | Fabian Lange <lange.fabian@gmail.com> | 2013-07-17 11:44:57 +0200 |
---|---|---|
committer | Vaadin Code Review <review@vaadin.com> | 2013-08-01 10:03:34 +0000 |
commit | 326bbb5e91564a39553b13f5a3a00b7ff5dd40ec (patch) | |
tree | 88a14751fc5de72c0d912bca0f9b806e4e127773 | |
parent | ea148c80ea6e12860a646bfaf60a0b712ebc8958 (diff) | |
download | vaadin-framework-326bbb5e91564a39553b13f5a3a00b7ff5dd40ec.tar.gz vaadin-framework-326bbb5e91564a39553b13f5a3a00b7ff5dd40ec.zip |
Fixes parsing of multiple push messages in streaming mode (#12197)
The current atmosphere code can handle messages split up using the message
length header. But it does not handle the case where the header is actually
split up itself.
This patch solves it by making sure the length header stays intact.
Corresponding atmosphere ticket:
https://github.com/Atmosphere/atmosphere/issues/1199
Change-Id: If22c42ea63b0749c68df19c869b316f9b69f4317
-rw-r--r-- | WebContent/VAADIN/jquery.atmosphere.js | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/WebContent/VAADIN/jquery.atmosphere.js b/WebContent/VAADIN/jquery.atmosphere.js index 28a7d033bd..b2dd99f5d2 100644 --- a/WebContent/VAADIN/jquery.atmosphere.js +++ b/WebContent/VAADIN/jquery.atmosphere.js @@ -1219,8 +1219,15 @@ jQuery.atmosphere = function() { messages.push(message.substring(0, messageLength)); } - if (messages.length == 0 || (messageStart != -1 && message.length != 0 && messageLength != message.length)){ - response.partialMessage = messageLength + request.messageDelimiter + message ; + if (messages.length == 0 || (message.length != 0 && messageLength != message.length)){ + if (messageStart == -1) { + // http://dev.vaadin.com/ticket/12197 + // partialMessage must contain length header of next message + // it starts at the end of the last message + response.partialMessage = message.substring(messageLength); + } else { + response.partialMessage = messageLength + request.messageDelimiter + message ; + } } else { response.partialMessage = ""; } |