public class BaseAMFMessagingChannel extends AbstractAMFChannel implements MessagingChannel
MessagingChannel.ChannelResponseListener| Modifier and Type | Field and Description |
|---|---|
protected MessagingCodec<Message[]> |
codec |
protected java.util.concurrent.atomic.AtomicReference<java.lang.String> |
connectMessageId |
protected java.util.concurrent.ConcurrentMap<java.lang.String,Consumer> |
consumersMap |
protected java.util.concurrent.atomic.AtomicReference<java.lang.String> |
loginMessageId |
protected long |
reconnectAttempts |
protected long |
reconnectIntervalMillis |
protected long |
reconnectMaxAttempts |
protected java.util.concurrent.atomic.AtomicReference<org.granite.client.messaging.channel.amf.BaseAMFMessagingChannel.ReconnectTimerTask> |
reconnectTimerTask |
protected java.util.List<MessagingChannel.ChannelResponseListener> |
responseListeners |
protected java.lang.String |
sessionId |
defaultTimeToLive, maxConcurrentRequestsclientId, credentials, id, transport, transportData, uriBYTEARRAY_BODY_HEADER, DEFAULT_TIME_TO_LIVE, RECONNECT_INTERVAL_MS_KEY, RECONNECT_MAX_ATTEMPTS_KEY| Constructor and Description |
|---|
BaseAMFMessagingChannel(MessagingCodec<Message[]> codec,
Transport transport,
java.lang.String id,
java.net.URI uri) |
| Modifier and Type | Method and Description |
|---|---|
void |
addConsumer(Consumer consumer)
Register a consumer for this channel
|
void |
addListener(MessagingChannel.ChannelResponseListener listener)
Register a listener which will be notified of messages occuring on the channel
|
protected void |
cancelReconnectTimerTask() |
protected boolean |
connect() |
protected TransportMessage |
createTransportMessage(AsyncToken token) |
protected ResponseMessage |
decodeResponse(java.io.InputStream is) |
ResponseMessageFuture |
disconnect(ResponseListener... listeners)
Disconnect the channel
|
protected void |
internalStop() |
ResponseMessageFuture |
logout(boolean sendLogout,
ResponseListener... listeners)
Logout from the server application.
|
void |
onError(TransportMessage message,
java.lang.Exception e)
Callback method called by the transport when an exception occurs during communication
|
boolean |
removeConsumer(Consumer consumer)
Unregister a consumer for this channel
|
void |
removeListener(MessagingChannel.ChannelResponseListener listener)
Unregister a listener which will be notified of messages occuring on the channel
|
protected void |
scheduleReconnectTimerTask() |
void |
setSessionId(java.lang.String sessionId)
Set the current session id
Necessary to synchronize session ids between remoting and messaging channels, usually the remoting channel
acts as the master channel which handles authentication and session management and propagated it to other
messaging channels
|
convertFromAmf, convertFromAmf, convertToAmfaddListener, authenticate, bindStatus, dispatchFault, getDefaultTimeToLive, getMaxConcurrentRequests, getRequest, isAuthenticated, isStarted, logout, onCancelled, onDisconnect, onMessage, onStop, removeListener, run, schedule, send, setAuthenticated, setDefaultTimeToLive, setPinged, start, stop, unbindStatusgetClientId, getCredentials, getId, getTransport, getTransportData, getUri, setCredentials, setTransportDataclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitaddListener, bindStatus, getClientId, getCredentials, getDefaultTimeToLive, getId, getTransport, getTransportData, getUri, isAuthenticated, isStarted, logout, onCancelled, onDisconnect, onMessage, removeListener, send, setCredentials, setDefaultTimeToLive, setTransportData, start, stop, unbindStatusprotected final MessagingCodec<Message[]> codec
protected java.lang.String sessionId
protected final java.util.concurrent.ConcurrentMap<java.lang.String,Consumer> consumersMap
protected final java.util.concurrent.atomic.AtomicReference<java.lang.String> connectMessageId
protected final java.util.concurrent.atomic.AtomicReference<java.lang.String> loginMessageId
protected final java.util.concurrent.atomic.AtomicReference<org.granite.client.messaging.channel.amf.BaseAMFMessagingChannel.ReconnectTimerTask> reconnectTimerTask
protected final java.util.List<MessagingChannel.ChannelResponseListener> responseListeners
protected volatile long reconnectIntervalMillis
protected volatile long reconnectMaxAttempts
protected volatile long reconnectAttempts
public BaseAMFMessagingChannel(MessagingCodec<Message[]> codec, Transport transport, java.lang.String id, java.net.URI uri)
public void setSessionId(java.lang.String sessionId)
MessagingChannelsetSessionId in interface MessagingChannelsetSessionId in interface SessionAwareChannelsessionId - session idprotected boolean connect()
public void addConsumer(Consumer consumer)
MessagingChanneladdConsumer in interface MessagingChannelconsumer - consumerConsumerpublic boolean removeConsumer(Consumer consumer)
MessagingChannelremoveConsumer in interface MessagingChannelconsumer - consumerConsumerpublic void addListener(MessagingChannel.ChannelResponseListener listener)
MessagingChanneladdListener in interface MessagingChannellistener - listenerpublic void removeListener(MessagingChannel.ChannelResponseListener listener)
MessagingChannelremoveListener in interface MessagingChannellistener - listenerpublic ResponseMessageFuture logout(boolean sendLogout, ResponseListener... listeners)
Channellogout in interface Channellogout in class AbstractHTTPChannelsendLogout - if true a logout message will be sentlisteners - array of listeners to notify asynchronously when the response is receivedpublic ResponseMessageFuture disconnect(ResponseListener... listeners)
MessagingChanneldisconnect in interface MessagingChannellisteners - array of listener to notify when the channel is disconnectedprotected TransportMessage createTransportMessage(AsyncToken token) throws java.io.UnsupportedEncodingException
createTransportMessage in class AbstractHTTPChanneljava.io.UnsupportedEncodingExceptionprotected ResponseMessage decodeResponse(java.io.InputStream is) throws java.io.IOException
decodeResponse in class AbstractHTTPChanneljava.io.IOExceptionprotected void internalStop()
internalStop in class AbstractHTTPChannelpublic void onError(TransportMessage message, java.lang.Exception e)
ChannelonError in interface ChannelonError in class AbstractHTTPChannelmessage - message triggering the errore - exception throws during send of messageprotected void cancelReconnectTimerTask()
protected void scheduleReconnectTimerTask()