Class MQTTTransportFilter
- java.lang.Object
-
- org.apache.activemq.transport.TransportFilter
-
- org.apache.activemq.transport.mqtt.MQTTTransportFilter
-
- All Implemented Interfaces:
Service
,MQTTTransport
,Transport
,TransportListener
public class MQTTTransportFilter extends TransportFilter implements MQTTTransport
The MQTTTransportFilter normally sits on top of a TcpTransport that has been configured with the StompWireFormat and is used to convert MQTT commands to ActiveMQ commands. All of the conversion work is done by delegating to the MQTTProtocolConverter
-
-
Field Summary
-
Fields inherited from class org.apache.activemq.transport.TransportFilter
next, transportListener
-
-
Constructor Summary
Constructors Constructor Description MQTTTransportFilter(Transport next, WireFormat wireFormat, BrokerService brokerService)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
getActiveMQSubscriptionPrefetch()
long
getConnectAttemptTimeout()
long
getDefaultKeepAlive()
MQTTInactivityMonitor
getInactivityMonitor()
int
getMaxFrameSize()
X509Certificate[]
getPeerCertificates()
boolean
getPublishDollarTopics()
String
getSubscriptionStrategy()
MQTTWireFormat
getWireFormat()
Retrieves the WireFormat instance associated with this Transport instance.boolean
isTrace()
void
onCommand(Object command)
called to process a commandvoid
oneway(Object o)
A one way asynchronous sendvoid
onException(IOException error)
An unrecoverable exception has occured on the transportvoid
sendToActiveMQ(Command command)
void
sendToMQTT(org.fusesource.mqtt.codec.MQTTFrame command)
void
setActiveMQSubscriptionPrefetch(int activeMQSubscriptionPrefetch)
set the default prefetch size when mapping the MQTT subscription to an ActiveMQ one The default = 1void
setConnectAttemptTimeout(long connectTimeout)
Sets the timeout value used to fail a connection if no CONNECT frame is read in the given interval.void
setDefaultKeepAlive(long defaultHeartBeat)
void
setInactivityMonitor(MQTTInactivityMonitor monitor)
void
setMaxFrameSize(int maxFrameSize)
Sets the maximum frame size for an incoming MQTT frame.void
setPeerCertificates(X509Certificate[] certificates)
Sets the certificates provided by the connected peer.void
setPublishDollarTopics(boolean publishDollarTopics)
void
setSubscriptionStrategy(String name)
void
setTrace(boolean trace)
void
start()
void
stop()
-
Methods inherited from class org.apache.activemq.transport.TransportFilter
asyncRequest, getNext, getReceiveCounter, getRemoteAddress, getTransportListener, isConnected, isDisposed, isFaultTolerant, isReconnectSupported, isUpdateURIsSupported, narrow, reconnect, request, request, setTransportListener, toString, transportInterupted, transportResumed, updateURIs
-
-
-
-
Constructor Detail
-
MQTTTransportFilter
public MQTTTransportFilter(Transport next, WireFormat wireFormat, BrokerService brokerService)
-
-
Method Detail
-
oneway
public void oneway(Object o) throws IOException
Description copied from interface:Transport
A one way asynchronous send- Specified by:
oneway
in interfaceTransport
- Overrides:
oneway
in classTransportFilter
- Throws:
IOException
-
onCommand
public void onCommand(Object command)
Description copied from interface:TransportListener
called to process a command- Specified by:
onCommand
in interfaceTransportListener
- Overrides:
onCommand
in classTransportFilter
-
sendToActiveMQ
public void sendToActiveMQ(Command command)
- Specified by:
sendToActiveMQ
in interfaceMQTTTransport
-
sendToMQTT
public void sendToMQTT(org.fusesource.mqtt.codec.MQTTFrame command) throws IOException
- Specified by:
sendToMQTT
in interfaceMQTTTransport
- Throws:
IOException
-
start
public void start() throws Exception
- Specified by:
start
in interfaceService
- Overrides:
start
in classTransportFilter
- Throws:
Exception
- See Also:
Service.start()
-
stop
public void stop() throws Exception
- Specified by:
stop
in interfaceMQTTTransport
- Specified by:
stop
in interfaceService
- Overrides:
stop
in classTransportFilter
- Throws:
Exception
- See Also:
Service.stop()
-
getPeerCertificates
public X509Certificate[] getPeerCertificates()
- Specified by:
getPeerCertificates
in interfaceMQTTTransport
- Specified by:
getPeerCertificates
in interfaceTransport
- Overrides:
getPeerCertificates
in classTransportFilter
- Returns:
- the Certificates provided by the peer, or null if not a secure channel.
-
isTrace
public boolean isTrace()
-
setTrace
public void setTrace(boolean trace)
-
getInactivityMonitor
public MQTTInactivityMonitor getInactivityMonitor()
- Specified by:
getInactivityMonitor
in interfaceMQTTTransport
-
setInactivityMonitor
public void setInactivityMonitor(MQTTInactivityMonitor monitor)
-
getWireFormat
public MQTTWireFormat getWireFormat()
Description copied from interface:Transport
Retrieves the WireFormat instance associated with this Transport instance.- Specified by:
getWireFormat
in interfaceMQTTTransport
- Specified by:
getWireFormat
in interfaceTransport
- Overrides:
getWireFormat
in classTransportFilter
- Returns:
- the WireFormat in use.
-
onException
public void onException(IOException error)
Description copied from interface:TransportListener
An unrecoverable exception has occured on the transport- Specified by:
onException
in interfaceMQTTTransport
- Specified by:
onException
in interfaceTransportListener
- Overrides:
onException
in classTransportFilter
-
getDefaultKeepAlive
public long getDefaultKeepAlive()
-
setDefaultKeepAlive
public void setDefaultKeepAlive(long defaultHeartBeat)
-
getConnectAttemptTimeout
public long getConnectAttemptTimeout()
- Returns:
- the timeout value used to fail a connection if no CONNECT frame read.
-
setConnectAttemptTimeout
public void setConnectAttemptTimeout(long connectTimeout)
Sets the timeout value used to fail a connection if no CONNECT frame is read in the given interval.- Parameters:
connectTimeout
- the connection frame received timeout value.
-
getPublishDollarTopics
public boolean getPublishDollarTopics()
-
setPublishDollarTopics
public void setPublishDollarTopics(boolean publishDollarTopics)
-
getSubscriptionStrategy
public String getSubscriptionStrategy()
-
setSubscriptionStrategy
public void setSubscriptionStrategy(String name)
-
getActiveMQSubscriptionPrefetch
public int getActiveMQSubscriptionPrefetch()
-
setActiveMQSubscriptionPrefetch
public void setActiveMQSubscriptionPrefetch(int activeMQSubscriptionPrefetch)
set the default prefetch size when mapping the MQTT subscription to an ActiveMQ one The default = 1- Parameters:
activeMQSubscriptionPrefetch
- set the prefetch for the corresponding ActiveMQ subscription
-
getMaxFrameSize
public int getMaxFrameSize()
- Returns:
- the maximum number of bytes a single MQTT message frame is allowed to be.
-
setMaxFrameSize
public void setMaxFrameSize(int maxFrameSize)
Sets the maximum frame size for an incoming MQTT frame. The protocl limit is 256 megabytes and this value cannot be set higher.- Parameters:
maxFrameSize
- the maximum allowed frame size for a single MQTT frame.
-
setPeerCertificates
public void setPeerCertificates(X509Certificate[] certificates)
Description copied from interface:Transport
Sets the certificates provided by the connected peer.- Specified by:
setPeerCertificates
in interfaceMQTTTransport
- Specified by:
setPeerCertificates
in interfaceTransport
- Overrides:
setPeerCertificates
in classTransportFilter
- Parameters:
certificates
- the Certificates provided by the peer.
-
-