Class LoadBalancerEndPoint
java.lang.Object
com.iizix.server.AbstractEndPoint
com.iizix.server.loadbalancer.LoadBalancerEndPoint
- All Implemented Interfaces:
IServerWebSocketCommListener, ITransactionCreator, ITransactionSender, WebSocketCommListener, IEndPoint, IRootPropTransactionSender
The Load Balancer end point web socket connection: a member's connection on the principal (HUB-DESIGN.md 3.1, B-7b). The protocol - CHALLENGE, REGISTER, admission, the member table - is
HubPrincipalConnection's and LoadBalancerHandler's; this class is the end point around them: the WebSocket, the property root, the heart-beat and the disposal.- Author:
- Christopher Mindus
Nested Class Summary
Nested classes/interfaces inherited from interface IEndPoint
IEndPoint.TypeField Summary
Fields inherited from class AbstractEndPoint
DEBUG, endPointPropertyManager, endPointType, name, propTransSender, root, server, serverSessionID, sessionInfo, threadGroup, workerFields inherited from interface IEndPoint
DEFAULT_HEARTBEAT_INTERVAL, STORAGE_NAMEFields inherited from interface WebSocketCommListener
CC_ABNORMAL_CLOSURE, CC_GOING_AWAY, CC_INTERNAL_ERROR, CC_INVALID_PAYLOAD_DATA, CC_MANDATORY_EXT, CC_MESSAGE_TOO_BIG, CC_NO_STATUS_RECEIVED, CC_NORMAL, CC_POLICY_VIOLATION, CC_PROTOCOL_ERROR, CC_SERVICE_RESTART, CC_TLS_HANDSHAKE, CC_TRY_AGAIN_LATER, CC_UNSUPPORTED_DATAMethod Summary
Modifier and TypeMethodDescriptionbooleandispose()Disposes of the end point.protected voidonClientPropsCreated(PropCnr root) Called when the root is created from a transaction from the client.voidonCommError(IWebSocketComm comm, Throwable e) Called when the communication link failed: a member whose process died without a close frame is gone at once (HUB-DESIGN.md 13).voidonCommHeartBeat(IWebSocketComm comm, long duration) Called when a heart-beat frame is received: the principal's measure of this link is kept per member (HUB-DESIGN.md 3.5).protected voidCalled upon connect: REGISTER must arrive within the deadline (HUB-DESIGN.md 13).protected final booleanprocessQueuedTransaction(int code, ReadTransaction trans) Processes queued transactions.Methods inherited from class AbstractEndPoint
createTransaction, getClientContextMenuReference, getEndPoint, getEndPointName, getEndPointType, getHeartBeatInterval, getProperties, getPropertyManager, getServer, getServerSessionID, getSessionInfo, getWebSocketCommListener, isConnected, onCommClosed, onCommClosing, onCommConnected, onCommData, onCommData, onCommOpen, onCommTimeout, onSendHeartHeat, paramString, sendTransaction, toString
Method Details
onSessionConnected
protected void onSessionConnected()Called upon connect: REGISTER must arrive within the deadline (HUB-DESIGN.md 13).- Overrides:
onSessionConnectedin classAbstractEndPoint
onClientPropsCreated
Called when the root is created from a transaction from the client. Override to perform some additional processing such as adding server environment, etc.- Overrides:
onClientPropsCreatedin classAbstractEndPoint
onCommHeartBeat
Called when a heart-beat frame is received: the principal's measure of this link is kept per member (HUB-DESIGN.md 3.5).- Specified by:
onCommHeartBeatin interfaceWebSocketCommListener- Overrides:
onCommHeartBeatin classAbstractEndPoint- Parameters:
comm- The WebSocket communication instance.duration- Duration of the PING-PONG message exchange in milliseconds.
onCommError
Called when the communication link failed: a member whose process died without a close frame is gone at once (HUB-DESIGN.md 13). The base class hard-closes the socket and disposes the end point, whoever failed the link: the peer, or the end point itself on a transaction it cannot read or a send that fails (CC-FIX-WEBSOCKET-F10-FOLLOWUP). This override, the hub's own repair since r20316 (measured live, CC-HUB-B7B-CHANNEL), repeats that disposal: its call is the second one and does nothing.- Specified by:
onCommErrorin interfaceWebSocketCommListener- Overrides:
onCommErrorin classAbstractEndPoint- Parameters:
comm- The WebSocket communication instance.e- The exception.
processQueuedTransaction
Processes queued transactions.- Specified by:
processQueuedTransactionin classAbstractEndPoint- Parameters:
code- The transaction code.trans- The transaction.- Returns:
- true if the transaction has been processed, false otherwise.
dispose
public boolean dispose()Disposes of the end point.- Specified by:
disposein interfaceIEndPoint- Overrides:
disposein classAbstractEndPoint- Returns:
- true if disposed, false if already disposed of.