Package org.glassfish.tyrus.core
Class TyrusRemoteEndpoint
java.lang.Object
org.glassfish.tyrus.core.TyrusRemoteEndpoint
- All Implemented Interfaces:
RemoteEndpoint
Wraps the
RemoteEndpoint and represents the other side of the websocket connection.- Author:
- Danny Coward, Martin Matula, Stepan Kopriva, Pavel Bucek
-
Method Summary
Modifier and TypeMethodDescriptionvoidclose(CloseReason cr) voidThis method is only used when batching is allowed for this RemoteEndpint.booleanReturn whether the implementation is allowed to batch outgoing messages before sending.voidsendPing(ByteBuffer applicationData) Send a Ping message containing the given application data to the remote endpoint.voidsendPong(ByteBuffer applicationData) Allows the developer to send an unsolicited Pong message containing the given application data in order to serve as a unidirectional heartbeat for the session.voidsetBatchingAllowed(boolean allowed) Indicate to the implementation that it is allowed to batch outgoing messages before sending.toString()
-
Method Details
-
sendPing
Description copied from interface:RemoteEndpointSend a Ping message containing the given application data to the remote endpoint. The corresponding Pong message may be picked up using the MessageHandler.Pong handler.It is not safe for other threads to use the ByteBuffer until the sending of this message is complete. If the sending of the message completes successfully, the buffer's limit will be unchanged and the buffer's position will be equal to the limit. If the sending of the message does not complete successfully, the state of the buffer is undefined.
- Specified by:
sendPingin interfaceRemoteEndpoint- Parameters:
applicationData- the data to be carried in the ping request.- Throws:
IOException- if the ping failed to be sent
-
sendPong
Description copied from interface:RemoteEndpointAllows the developer to send an unsolicited Pong message containing the given application data in order to serve as a unidirectional heartbeat for the session.It is not safe for other threads to use the ByteBuffer until the sending of this message is complete. If the sending of the message completes successfully, the buffer's limit will be unchanged and the buffer's position will be equal to the limit. If the sending of the message does not complete successfully, the state of the buffer is undefined.
- Specified by:
sendPongin interfaceRemoteEndpoint- Parameters:
applicationData- the application data to be carried in the pong response.- Throws:
IOException- if the pong failed to be sent
-
toString
-
setBatchingAllowed
public void setBatchingAllowed(boolean allowed) Description copied from interface:RemoteEndpointIndicate to the implementation that it is allowed to batch outgoing messages before sending. Not all implementations support batching of outgoing messages. The default mode for RemoteEndpoints is false. If the developer has indicated that batching of outgoing messages is permitted, then the developer must call flushBatch() in order to be sure that all the messages passed into the send methods of this RemoteEndpoint are sent. When batching is allowed, the implementations send operations are considered to have completed if the message has been written to the local batch, in the case when there is still room in the batch for the message, and are considered to have completed if the batch has been send to the peer and the remainder written to the new batch, in the case when writing the message causes the batch to need to be sent. The blocking and asynchronous send methods use this notion of completion in order to complete blocking calls, notify SendHandlers and complete Futures respectively. When batching is allowed, if the developer has called send methods on this RemoteEndpoint without calling flushBatch(), then the implementation may not have sent all the messages the developer has asked to be sent. If the parameter value is false and the implementation has a batch of unsent messages, then the implementation must immediately send the batch of unsent messages.- Specified by:
setBatchingAllowedin interfaceRemoteEndpoint- Parameters:
allowed- whether the implementation is allowed to batch messages.
-
getBatchingAllowed
public boolean getBatchingAllowed()Description copied from interface:RemoteEndpointReturn whether the implementation is allowed to batch outgoing messages before sending. The default mode for RemoteEndpoints is false. The value may be changed by callingsetBatchingAllowed.- Specified by:
getBatchingAllowedin interfaceRemoteEndpoint- Returns:
trueif the implementation is allowed to batch outgoing messages before sending, otherwisefalse
-
flushBatch
public void flushBatch()Description copied from interface:RemoteEndpointThis method is only used when batching is allowed for this RemoteEndpint. Calling this method forces the implementation to send any unsent messages it has been batching.- Specified by:
flushBatchin interfaceRemoteEndpoint
-
close
-