|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface ClientSession
Interface representing a single, connected login session between a
client and the server. Classes that implement
ClientSession
must also implement Serializable
.
When a client logs in, the application's AppListener.loggedIn
method is
invoked with a new ClientSession
instance which represents the
current connection between that client and the server. By returning a
unique ClientSessionListener
from the loggedIn
method
for each given client session, the application will receive notification
when a client session sends a message, is disconnected, or logs out. To
explicitly disconnect a ClientSession
, remove the associated
ClientSession
object from the data manager using the DataManager.removeObject
method.
A ClientSession
is used to identify a client that is
logged in, to send messages to that client, and to forcibly disconnect
that client from the server.
A session is considered disconnected if one of the following occurs:
ClientSession
object is removed from the data manager
If a client associated with a ClientSession
becomes
disconnected due to one of these conditions, the disconnected
method is
invoked on that session's registered
ClientSessionListener
with a boolean
that
if true
indicates the client logged out gracefully.
Once a client becomes disconnected, its ClientSession
becomes invalid and can no longer be used to communicate with that
client and should be removed from the data manager. When that client
logs back in again, a new session is established with the server.
Method Summary | |
---|---|
int |
getMaxMessageLength()
Return the maximum message length supported by this session. |
String |
getName()
Returns the login name used to authenticate this session. |
boolean |
isConnected()
Returns true if the client is connected,
otherwise returns false . |
ClientSession |
send(ByteBuffer message)
Sends a message contained in the specified ByteBuffer to
this session's client with the delivery guarantee of Delivery.RELIABLE . |
ClientSession |
send(ByteBuffer message,
Delivery delivery)
Sends a message contained in the specified ByteBuffer to
this session's client in a manner that satisfies the specified
delivery guarantee. |
Set<Delivery> |
supportedDeliveries()
Returns a set containing the delivery guarantees supported by this session. |
Method Detail |
---|
String getName()
IllegalStateException
- if this session is disconnected
TransactionException
- if the operation failed because of
a problem with the current transactionSet<Delivery> supportedDeliveries()
int getMaxMessageLength()
ClientSession send(ByteBuffer message)
ByteBuffer
to
this session's client with the delivery guarantee of Delivery.RELIABLE
. The message starts at the buffer's current
position and ends at the buffer's limit. The buffer's position is
not modified by this operation.
The ByteBuffer
may be reused immediately after this method
returns. Changes made to the buffer after this method returns will
have no effect on the message sent to the client by this invocation.
This method is equivalent to invoking send
with the specified message
and Delivery.RELIABLE
.
message
- a message
IllegalStateException
- if this session is disconnected
IllegalArgumentException
- if the specified message length
exceeds getMaxMessageLength()
MessageRejectedException
- if there are not enough resources
to send the specified message
DeliveryNotSupportedException
- if this client session does
not support reliable
delivery
TransactionException
- if the operation failed because of
a problem with the current transactionClientSession send(ByteBuffer message, Delivery delivery)
ByteBuffer
to
this session's client in a manner that satisfies the specified
delivery
guarantee. The message starts at the buffer's
current position and ends at the buffer's limit. The buffer's
position is not modified by this operation.
When possible, the message should be delivered using the most
efficient means to satisfy the delivery guarantee. However, a
stronger delivery guarantee may be used to deliver the message if
the underlying protocol only supports stronger delivery guarantees.
If the protocol is not able to satisfy the specified delivery
guarantee (e.g., only supports weaker delivery guarantees than the
one specified), then a DeliveryNotSupportedException
will be
thrown.
The ByteBuffer
may be reused immediately after this method
returns. Changes made to the buffer after this method returns will
have no effect on the message sent to the client by this invocation.
message
- a messagedelivery
- a delivery guarantee
IllegalStateException
- if this session is disconnected
IllegalArgumentException
- if the specified message length
exceeds getMaxMessageLength()
MessageRejectedException
- if there are not enough resources
to send the specified message
DeliveryNotSupportedException
- if the specified delivery
guarantee cannot be satisfied
TransactionException
- if the operation failed because of
a problem with the current transactionboolean isConnected()
true
if the client is connected,
otherwise returns false
.
true
if the client is connected,
otherwise returns false
TransactionException
- if the operation failed because of
a problem with the current transaction
|
Project Darkstar, Version 0.9.9.6 2009-05-08 15:39:40 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |