Class LocalSessionImpl
- All Implemented Interfaces:
ClientSession,LocalSession,Session,org.eclipse.jetty.util.component.Dumpable
public class LocalSessionImpl extends AbstractClientSession implements LocalSession
A LocalSession implementation.
This LocalSession implementation communicates with its
ServerSession counterpart without any serialization.
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected classLocalSessionImpl.LocalChannelA channel scoped to this LocalSession.Nested classes/interfaces inherited from class org.cometd.common.AbstractClientSession
AbstractClientSession.AbstractSessionChannelNested classes/interfaces inherited from interface org.cometd.bayeux.client.ClientSession
ClientSession.Extension, ClientSession.MessageListener -
Constructor Summary
Constructors Constructor Description LocalSessionImpl(BayeuxServerImpl bayeux, String idHint) -
Method Summary
Modifier and Type Method Description voiddisconnect()Disconnects this session, ending the link between the client and the server peers.voiddisconnect(ClientSessionChannel.MessageListener callback)Disconnects this session, ending the link between the client and the server peers.protected voiddoSend(ServerSessionImpl from, ServerMessage.Mutable message)Sends a message to the server.StringgetId()The clientId of the session.ServerSessiongetServerSession()voidhandshake()Equivalent tohandshake(null).voidhandshake(Map<String,Object> template)Equivalent tohandshake(template, null).voidhandshake(Map<String,Object> template, ClientSessionChannel.MessageListener callback)Initiates the bayeux protocol handshake with the server(s).booleanisConnected()A connected session is a session where the link between the client and the server has been established.booleanisHandshook()A handshook session is a session where the handshake has successfully completedprotected AbstractClientSession.AbstractSessionChannelnewChannel(ChannelId channelId)protected ChannelIdnewChannelId(String channelId)protected ServerMessage.MutablenewMessage()voidreceive(Message.Mutable message)Receives a message (from the server) and process it.protected voidsend(Message.Mutable message)protected voidsend(ServerSessionImpl session, ServerMessage.Mutable message)Enqueues or sends a message to the server.protected voidsendBatch()StringtoString()Methods inherited from class org.cometd.common.AbstractClientSession
addExtension, batch, dump, dump, endBatch, extendRcv, extendSend, getAttribute, getAttributeNames, getChannel, getChannel, getChannels, getExtensions, isBatching, newMessageId, notifyListener, notifyListeners, registerCallback, registerSubscriber, remoteCall, removeAttribute, removeExtension, resetSubscriptions, setAttribute, startBatch, unregisterCallback, unregisterSubscriberMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.cometd.bayeux.client.ClientSession
addExtension, getChannel, getExtensions, remoteCall, removeExtensionMethods inherited from interface org.cometd.bayeux.Session
batch, endBatch, getAttribute, getAttributeNames, removeAttribute, setAttribute, startBatch
-
Constructor Details
-
Method Details
-
receive
Description copied from class:AbstractClientSessionReceives a message (from the server) and process it.
Processing the message involves calling the receive
extensionsand the channellisteners.- Overrides:
receivein classAbstractClientSession- Parameters:
message- the message received.
-
newChannel
- Specified by:
newChannelin classAbstractClientSession
-
newChannelId
- Specified by:
newChannelIdin classAbstractClientSession
-
sendBatch
protected void sendBatch()- Specified by:
sendBatchin classAbstractClientSession
-
getServerSession
- Specified by:
getServerSessionin interfaceLocalSession- Returns:
- the associated
ServerSession
-
handshake
public void handshake()Description copied from interface:ClientSessionEquivalent to
handshake(null).- Specified by:
handshakein interfaceClientSession
-
handshake
Description copied from interface:ClientSessionEquivalent to
handshake(template, null).- Specified by:
handshakein interfaceClientSession- Parameters:
template- additional fields to add to the handshake message.
-
handshake
Description copied from interface:ClientSessionInitiates the bayeux protocol handshake with the server(s).
The handshake initiated by this method is asynchronous and does not wait for the handshake response.
- Specified by:
handshakein interfaceClientSession- Parameters:
template- additional fields to add to the handshake message.callback- the message listener to notify of the handshake result
-
disconnect
public void disconnect()Description copied from interface:SessionDisconnects this session, ending the link between the client and the server peers.- Specified by:
disconnectin interfaceSession- See Also:
Session.isConnected()
-
disconnect
Description copied from interface:ClientSessionDisconnects this session, ending the link between the client and the server peers.
- Specified by:
disconnectin interfaceClientSession- Parameters:
callback- the message listener to notify of the disconnect result
-
getId
Description copied from interface:SessionThe clientId of the session.
This would more correctly be called a "sessionId", but for backwards compatibility with the Bayeux protocol, it is a field called "clientId" that identifies a session.
-
isConnected
public boolean isConnected()Description copied from interface:SessionA connected session is a session where the link between the client and the server has been established.
- Specified by:
isConnectedin interfaceSession- Returns:
- whether the session is connected
- See Also:
Session.disconnect()
-
isHandshook
public boolean isHandshook()Description copied from interface:SessionA handshook session is a session where the handshake has successfully completed
- Specified by:
isHandshookin interfaceSession- Returns:
- whether the session is handshook
-
toString
-
send
- Specified by:
sendin classAbstractClientSession
-
send
Enqueues or sends a message to the server.
This method will either enqueue the message, if this session
is batching, or perform the actual send by callingdoSend(ServerSessionImpl, ServerMessage.Mutable).- Parameters:
session- The ServerSession to send as. This normally the current server session, but during handshake it is a proposed server session.message- The message to send.
-
doSend
Sends a message to the server.
- Parameters:
from- The ServerSession to send as. This normally the current server session, but during handshake it is a proposed server session.message- The message to send.
-
newMessage
- Overrides:
newMessagein classAbstractClientSession
-