Class AtmospherePushConnection
java.lang.Object
com.vaadin.flow.server.communication.AtmospherePushConnection
- All Implemented Interfaces:
FragmentedMessageHolder
,PushConnection
,Serializable
public class AtmospherePushConnection
extends Object
implements PushConnection, FragmentedMessageHolder
A
PushConnection
implementation using the Atmosphere push support
that is by default included in Vaadin.
For internal use only. May be renamed or removed in a future release.
- Since:
- 1.0
- Author:
- Vaadin Ltd
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
Represents a message that can arrive as multiple fragments.protected static enum
-
Constructor Summary
ConstructorsConstructorDescriptionCreates an instance connected to the given UI. -
Method Summary
Modifier and TypeMethodDescriptionvoid
clearFragmentedMessage
(org.atmosphere.cpr.AtmosphereResource resource) Clears the partial message that is currently being received.void
connect
(org.atmosphere.cpr.AtmosphereResource resource) Associates thisAtmospherePushConnection
with the givenAtmosphereResource
representing an established push connection.void
Called when the connection to the client has been lost.void
Closes the connection.static void
Internal method used for reconfiguring loggers to show all Atmosphere log messages in the console.static String
Gets the Atmosphere version in use, as reported byVersion.getRawVersion()
.getOrCreateFragmentedMessage
(org.atmosphere.cpr.AtmosphereResource resource) Gets the partial message that is currently being received, if any.protected org.atmosphere.cpr.AtmosphereResource
protected AtmospherePushConnection.State
getState()
Returns the state of this connection.protected UI
getUI()
boolean
Returns whether this connection is currently open.void
push()
Pushes pending state changes and client RPC calls to the client.void
push
(boolean async) Pushes pending state changes and client RPC calls to the client.protected static Reader
receiveMessage
(org.atmosphere.cpr.AtmosphereResource resource, Reader reader, FragmentedMessageHolder holder) Reads and buffers a (possibly partial) message.protected void
sendMessage
(String message) Sends the given message to the current client.
-
Constructor Details
-
AtmospherePushConnection
Creates an instance connected to the given UI.- Parameters:
ui
- the UI to which this connection belongs
-
-
Method Details
-
getAtmosphereVersion
Gets the Atmosphere version in use, as reported byVersion.getRawVersion()
.- Returns:
- the Atmosphere version in use or null if Atmosphere was not found
-
push
public void push()Description copied from interface:PushConnection
Pushes pending state changes and client RPC calls to the client. Can be called even ifPushConnection.isConnected()
is false; the push will be deferred until a connection is available. It is NOT safe to invoke this method if not holding the session lock.This is internal API; please use
UI.push()
instead.- Specified by:
push
in interfacePushConnection
-
push
public void push(boolean async) Pushes pending state changes and client RPC calls to the client. IfisConnected()
is false, defers the push until a connection is established.- Parameters:
async
- True if this push asynchronously originates from the server, false if it is a response to a client request.
-
sendMessage
Sends the given message to the current client. Cannot be called ifisConnected()
returns false.- Parameters:
message
- The message to send
-
receiveMessage
protected static Reader receiveMessage(org.atmosphere.cpr.AtmosphereResource resource, Reader reader, FragmentedMessageHolder holder) throws IOException Reads and buffers a (possibly partial) message. If a complete message was received, or if the call resulted in the completion of a partially received message, returns aReader
yielding the complete message. Otherwise, returns null.- Parameters:
resource
- The atmosphere resource with datareader
- The request body readerholder
- A holder for a previously received partial message- Returns:
- A Reader yielding a complete message or null if the message is not yet complete.
- Throws:
IOException
- if an IO error occurred
-
isConnected
public boolean isConnected()Description copied from interface:PushConnection
Returns whether this connection is currently open.- Specified by:
isConnected
in interfacePushConnection
- Returns:
- true if the connection is open, false otherwise
-
connect
public void connect(org.atmosphere.cpr.AtmosphereResource resource) Associates thisAtmospherePushConnection
with the givenAtmosphereResource
representing an established push connection. If already connected, callsdisconnect()
first. If there is a deferred push, carries it out via the new connection.- Parameters:
resource
- the resource to associate this connection with
-
getUI
- Returns:
- the UI associated with this connection.
-
getResource
protected org.atmosphere.cpr.AtmosphereResource getResource()- Returns:
- The AtmosphereResource associated with this connection or null if connection not open.
-
disconnect
public void disconnect()Description copied from interface:PushConnection
Closes the connection. Cannot be called ifPushConnection.isConnected()
is false.- Specified by:
disconnect
in interfacePushConnection
-
connectionLost
public void connectionLost()Called when the connection to the client has been lost. -
getOrCreateFragmentedMessage
public AtmospherePushConnection.FragmentedMessage getOrCreateFragmentedMessage(org.atmosphere.cpr.AtmosphereResource resource) Description copied from interface:FragmentedMessageHolder
Gets the partial message that is currently being received, if any.- Specified by:
getOrCreateFragmentedMessage
in interfaceFragmentedMessageHolder
- Parameters:
resource
- the resource to get the partial message from- Returns:
- the fragmented message being received or a new empty instance
-
clearFragmentedMessage
public void clearFragmentedMessage(org.atmosphere.cpr.AtmosphereResource resource) Description copied from interface:FragmentedMessageHolder
Clears the partial message that is currently being received. Should be called when the whole message has been received.- Specified by:
clearFragmentedMessage
in interfaceFragmentedMessageHolder
- Parameters:
resource
- the related resource
-
getState
Returns the state of this connection.- Returns:
- the state of this connection
-
enableAtmosphereDebugLogging
public static void enableAtmosphereDebugLogging()Internal method used for reconfiguring loggers to show all Atmosphere log messages in the console.
-