Package org.apache.activemq.transport.ws
Class AbstractStompSocket
- java.lang.Object
-
- org.apache.activemq.util.ServiceSupport
-
- org.apache.activemq.transport.TransportSupport
-
- org.apache.activemq.transport.ws.AbstractStompSocket
-
- All Implemented Interfaces:
Service
,StompTransport
,Transport
- Direct Known Subclasses:
StompSocket
public abstract class AbstractStompSocket extends TransportSupport implements StompTransport
Base implementation of a STOMP based WebSocket handler.
-
-
Field Summary
Fields Modifier and Type Field Description protected X509Certificate[]
certificates
protected ProtocolConverter
protocolConverter
protected ReentrantLock
protocolLock
protected int
receiveCounter
protected String
remoteAddress
protected CountDownLatch
socketTransportStarted
protected StompInactivityMonitor
stompInactivityMonitor
protected StompWireFormat
wireFormat
-
Constructor Summary
Constructors Constructor Description AbstractStompSocket(String remoteAddress)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected void
doStart()
protected void
doStop(ServiceStopper stopper)
StompInactivityMonitor
getInactivityMonitor()
X509Certificate[]
getPeerCertificates()
int
getReceiveCounter()
Returns a counter which gets incremented as data is read from the transport.String
getRemoteAddress()
StompWireFormat
getWireFormat()
Retrieves the WireFormat instance associated with this Transport instance.abstract void
handleStopped()
Called when the transport is stopping to allow the dervied classes a chance to close WebSocket resources.void
oneway(Object command)
A one way asynchronous sendprotected void
processStompFrame(String data)
void
sendToActiveMQ(Command command)
abstract void
sendToStomp(StompFrame command)
void
setPeerCertificates(X509Certificate[] certificates)
Sets the certificates provided by the connected peer.-
Methods inherited from class org.apache.activemq.transport.TransportSupport
asyncRequest, checkStarted, doConsume, getTransportListener, isConnected, isDisposed, isFaultTolerant, isReconnectSupported, isUpdateURIsSupported, narrow, onException, reconnect, request, request, setTransportListener, updateURIs
-
Methods inherited from class org.apache.activemq.util.ServiceSupport
addServiceListener, dispose, isStarted, isStopped, isStopping, postStop, preStart, removeServiceListener, start, stop
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.activemq.transport.stomp.StompTransport
onException
-
-
-
-
Field Detail
-
protocolLock
protected ReentrantLock protocolLock
-
protocolConverter
protected ProtocolConverter protocolConverter
-
wireFormat
protected StompWireFormat wireFormat
-
socketTransportStarted
protected final CountDownLatch socketTransportStarted
-
stompInactivityMonitor
protected final StompInactivityMonitor stompInactivityMonitor
-
receiveCounter
protected volatile int receiveCounter
-
remoteAddress
protected final String remoteAddress
-
certificates
protected X509Certificate[] certificates
-
-
Constructor Detail
-
AbstractStompSocket
public AbstractStompSocket(String remoteAddress)
-
-
Method Detail
-
oneway
public void oneway(Object command) throws IOException
Description copied from interface:Transport
A one way asynchronous send- Specified by:
oneway
in interfaceTransport
- Throws:
IOException
-
sendToActiveMQ
public void sendToActiveMQ(Command command)
- Specified by:
sendToActiveMQ
in interfaceStompTransport
-
doStop
protected void doStop(ServiceStopper stopper) throws Exception
- Specified by:
doStop
in classServiceSupport
- Throws:
Exception
-
doStart
protected void doStart() throws Exception
- Specified by:
doStart
in classServiceSupport
- Throws:
Exception
-
sendToStomp
public abstract void sendToStomp(StompFrame command) throws IOException
- Specified by:
sendToStomp
in interfaceStompTransport
- Throws:
IOException
-
handleStopped
public abstract void handleStopped() throws IOException
Called when the transport is stopping to allow the dervied classes a chance to close WebSocket resources.- Throws:
IOException
- if an error occurs during the stop.
-
getInactivityMonitor
public StompInactivityMonitor getInactivityMonitor()
- Specified by:
getInactivityMonitor
in interfaceStompTransport
-
getWireFormat
public StompWireFormat getWireFormat()
Description copied from interface:Transport
Retrieves the WireFormat instance associated with this Transport instance.- Specified by:
getWireFormat
in interfaceStompTransport
- Specified by:
getWireFormat
in interfaceTransport
- Returns:
- the WireFormat in use.
-
getRemoteAddress
public String getRemoteAddress()
- Specified by:
getRemoteAddress
in interfaceTransport
- Returns:
- the remote address for this connection
-
getReceiveCounter
public int getReceiveCounter()
Description copied from interface:Transport
Returns a counter which gets incremented as data is read from the transport. It should only be used to determine if there is progress being made in reading the next command from the transport. The value may wrap into the negative numbers.- Specified by:
getReceiveCounter
in interfaceTransport
- Returns:
- a counter which gets incremented as data is read from the transport.
-
processStompFrame
protected void processStompFrame(String data)
-
getPeerCertificates
public X509Certificate[] getPeerCertificates()
- Specified by:
getPeerCertificates
in interfaceTransport
- Returns:
- the Certificates provided by the peer, or null if not a secure channel.
-
setPeerCertificates
public void setPeerCertificates(X509Certificate[] certificates)
Description copied from interface:Transport
Sets the certificates provided by the connected peer.- Specified by:
setPeerCertificates
in interfaceTransport
- Parameters:
certificates
- the Certificates provided by the peer.
-
-