Disable client timeout so websockets are not disconnected when idle (#13015)
Updated sleep method to ensure that long sleeps can be performed without losing
the connection to the browser
Change-Id: I4f29d946e7a9a400e303e3a574876e1bc2d56773
Force connection to closed state on reconnect (#12853)
IE10+ does not call onabort when the streaming connection is aborted.
As a result, onclose is never called and the client side does not
change the connection state away from "connected". This results in
user actions not being queued on the client side, instead the client
tries to send them immediately, leading to an eternal spinner.
If this can be fixed in Atmosphere somehow, it should. This is a
workaround until then.
Change-Id: Icd1a86ac9775d1a7d9c0bc1dee0fd399e2bf2266
* Atmosphere 2.0 has changed enableProtocol to default to true.
* Reopening a connection in Atmosphere 2.0 is signalled through an onReopen event (not present at all in Atmosphere 1.0.x)
Fix was backported from master
Change-Id: I6ed258087a0b3a06440ab9d19b621560fa4f998f
Merge: no
Handle push disconnections and reconnections more reliably (#11831, #11922)
Client-side:
* Call onOpen() also after a successful reconnection
* Reliably call onClose() and try to reconnect after disconnection
* Don't try to reconnect if !isApplicationRunning() after push
* Queue messages while trying to reconnect (state CONNECT_PENDING)
Server-side:
* Implement AtmosphereResourceEventListener.onDisconnect()
* Push marked as pending until client reconnects (if ever)
Change-Id: I1783eb72eb7005b07cae786d8ec8371da3903108
Use "\0" instead of "|" as a push message delimiter (#11692)
Used with TrackMessageSizeInterceptor and with client-to-server Websocket message splitting (see #11648)
The original issue that the delimiter can not appear in the message (unescaped) is apparently fixed in Atmosphere 1.0.13
Also ensure the max size of a websocket fragment in bytes does not exceed the buffer size (#11842)
Change-Id: I768524bb54a5b8b9479dc7bda821256bd843dc52
Split client-to-server messages when websockets are used (#11648)
* First part of a fragmented message prefixed by total message length plus '|'
* Atmosphere websocket buffer size set to 65536
* Fragment size is 65535 characters (Jetty requires less than buffer size)
Change-Id: I8bf872bbb03b86386070fdc99c14ea805dd2ef3a
Verify CSRF token before accepting new CSRF connection (#11635)
* Can't open push connection during client-side init because CSRF token
is not available at that point. This allows simplifying the
initialization because the push state will not be checked until the
first response has been processed.
* Add helper for checking the CSRF token
Change-Id: I31da1ac669dc9a581cbd66f58c07f10ea4b8b676
* Add PushConnection interface and rename old class to
AtmospherePushConnection
* Define deferred binding to use AtmospherePushConnection by default
* Redesign connection and disconnection workflow to better cope with
situations where connection is quickly toggled
Change-Id: I9b9427c2df40d446a25895eb39e7b166cb929a85
For optimal performance, the script will still be included in the host
HTML if push is enabled when the UI is bootstrapped.
Change-Id: I2245b45434f3097c32fd3580267f692dce3b7649
Replaced Atmosphere portal implementation with the jQuery implementation (#11629)
* jquery-1.7.2.rebased.js and jquery.atmosphere.rebased.js are imported from atmosphere-jquery and updated to use the jQueryVaadin namespace instead of jQuery and $
Change-Id: I1461ac7803e90d2a40b390551023a118ed5dc704
* Asynchronous bidirectional communication
* Use Atmosphere as a backend
* Use websockets if available, fallback to HTTP streaming
* Push mode (disabled, manual, automatic)
* Configurable via servlet parameter pushMode
* Disabled: The default; regular AJAX communication
* Manual: Need explicit UI.push() call
* Automatic: push all UIs in session when lock released
* UI.push()
* Push pending state and RPC to client asynchronously
* Must hold session lock when invoking
Change-Id: Idb5978ac81f7ff1e66665df4e3f96e29e4c419d4