Class MQTTProtocolManager
- java.lang.Object
-
- org.apache.activemq.artemis.spi.core.protocol.AbstractProtocolManager<io.netty.handler.codec.mqtt.MqttMessage,MQTTInterceptor,MQTTConnection,MQTTRoutingHandler>
-
- org.apache.activemq.artemis.core.protocol.mqtt.MQTTProtocolManager
-
- All Implemented Interfaces:
org.apache.activemq.artemis.core.server.management.NotificationListener,ProtocolManager<MQTTInterceptor,MQTTRoutingHandler>
public class MQTTProtocolManager extends AbstractProtocolManager<io.netty.handler.codec.mqtt.MqttMessage,MQTTInterceptor,MQTTConnection,MQTTRoutingHandler> implements org.apache.activemq.artemis.core.server.management.NotificationListener
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanacceptsNoHandshake()voidaddChannelHandlers(io.netty.channel.ChannelPipeline pipeline)ConnectionEntrycreateConnectionEntry(Acceptor acceptorUsed, Connection connection)intgetDefaultMqttSessionExpiryInterval()ProtocolManagerFactorygetFactory()intgetMaximumPacketSize()intgetReceiveMaximum()MQTTRoutingHandlergetRoutingHandler()intgetServerKeepAlive()MQTTStateManagergetStateManager()intgetTopicAliasMaximum()voidhandleBuffer(RemotingConnection connection, ActiveMQBuffer buffer)voidhandshake(org.apache.activemq.artemis.core.remoting.impl.netty.NettyServerConnection connection, ActiveMQBuffer buffer)StringinvokeIncoming(io.netty.handler.codec.mqtt.MqttMessage mqttMessage, MQTTConnection connection)StringinvokeOutgoing(io.netty.handler.codec.mqtt.MqttMessage mqttMessage, MQTTConnection connection)booleanisAllowLinkStealing()booleanisCloseMqttConnectionOnPublishAuthorizationFailure()booleanisProtocol(byte[] array)Relevant portions of the specs we support: MQTT 3.1 - https://public.dhe.ibm.com/software/dw/webservices/ws-mqtt/mqtt-v3r1.html#connect MQTT 3.1.1 - http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html#_Toc398718028 MQTT 5 - https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901033voidonNotification(org.apache.activemq.artemis.core.server.management.Notification notification)voidsetAllowLinkStealing(boolean allowLinkStealing)voidsetCloseMqttConnectionOnPublishAuthorizationFailure(boolean closeMqttConnectionOnPublishAuthorizationFailure)MQTTProtocolManagersetDefaultMqttSessionExpiryInterval(int sessionExpiryInterval)MQTTProtocolManagersetMaximumPacketSize(int maximumPacketSize)MQTTProtocolManagersetReceiveMaximum(int receiveMaximum)MQTTProtocolManagersetServerKeepAlive(int serverKeepAlive)MQTTProtocolManagersetTopicAliasMaximum(int topicAliasMaximum)voidupdateInterceptors(List incoming, List outgoing)List<String>websocketSubprotocolIdentifiers()-
Methods inherited from class org.apache.activemq.artemis.spi.core.protocol.AbstractProtocolManager
getPrefixes, getSecurityDomain, invokeInterceptors, setAnycastPrefix, setMulticastPrefix, setSecurityDomain
-
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.artemis.spi.core.protocol.ProtocolManager
removeHandler
-
-
-
-
Method Detail
-
getDefaultMqttSessionExpiryInterval
public int getDefaultMqttSessionExpiryInterval()
-
setDefaultMqttSessionExpiryInterval
public MQTTProtocolManager setDefaultMqttSessionExpiryInterval(int sessionExpiryInterval)
-
getTopicAliasMaximum
public int getTopicAliasMaximum()
-
setTopicAliasMaximum
public MQTTProtocolManager setTopicAliasMaximum(int topicAliasMaximum)
-
getReceiveMaximum
public int getReceiveMaximum()
-
setReceiveMaximum
public MQTTProtocolManager setReceiveMaximum(int receiveMaximum)
-
getMaximumPacketSize
public int getMaximumPacketSize()
-
setMaximumPacketSize
public MQTTProtocolManager setMaximumPacketSize(int maximumPacketSize)
-
getServerKeepAlive
public int getServerKeepAlive()
-
setServerKeepAlive
public MQTTProtocolManager setServerKeepAlive(int serverKeepAlive)
-
isCloseMqttConnectionOnPublishAuthorizationFailure
public boolean isCloseMqttConnectionOnPublishAuthorizationFailure()
-
setCloseMqttConnectionOnPublishAuthorizationFailure
public void setCloseMqttConnectionOnPublishAuthorizationFailure(boolean closeMqttConnectionOnPublishAuthorizationFailure)
-
isAllowLinkStealing
public boolean isAllowLinkStealing()
-
setAllowLinkStealing
public void setAllowLinkStealing(boolean allowLinkStealing)
-
onNotification
public void onNotification(org.apache.activemq.artemis.core.server.management.Notification notification)
- Specified by:
onNotificationin interfaceorg.apache.activemq.artemis.core.server.management.NotificationListener
-
getFactory
public ProtocolManagerFactory getFactory()
- Specified by:
getFactoryin interfaceProtocolManager<MQTTInterceptor,MQTTRoutingHandler>
-
updateInterceptors
public void updateInterceptors(List incoming, List outgoing)
- Specified by:
updateInterceptorsin interfaceProtocolManager<MQTTInterceptor,MQTTRoutingHandler>
-
createConnectionEntry
public ConnectionEntry createConnectionEntry(Acceptor acceptorUsed, Connection connection)
- Specified by:
createConnectionEntryin interfaceProtocolManager<MQTTInterceptor,MQTTRoutingHandler>
-
acceptsNoHandshake
public boolean acceptsNoHandshake()
- Specified by:
acceptsNoHandshakein interfaceProtocolManager<MQTTInterceptor,MQTTRoutingHandler>
-
handleBuffer
public void handleBuffer(RemotingConnection connection, ActiveMQBuffer buffer)
- Specified by:
handleBufferin interfaceProtocolManager<MQTTInterceptor,MQTTRoutingHandler>
-
addChannelHandlers
public void addChannelHandlers(io.netty.channel.ChannelPipeline pipeline)
- Specified by:
addChannelHandlersin interfaceProtocolManager<MQTTInterceptor,MQTTRoutingHandler>
-
isProtocol
public boolean isProtocol(byte[] array)
Relevant portions of the specs we support: MQTT 3.1 - https://public.dhe.ibm.com/software/dw/webservices/ws-mqtt/mqtt-v3r1.html#connect MQTT 3.1.1 - http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html#_Toc398718028 MQTT 5 - https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901033- Specified by:
isProtocolin interfaceProtocolManager<MQTTInterceptor,MQTTRoutingHandler>
-
handshake
public void handshake(org.apache.activemq.artemis.core.remoting.impl.netty.NettyServerConnection connection, ActiveMQBuffer buffer)- Specified by:
handshakein interfaceProtocolManager<MQTTInterceptor,MQTTRoutingHandler>
-
websocketSubprotocolIdentifiers
public List<String> websocketSubprotocolIdentifiers()
- Specified by:
websocketSubprotocolIdentifiersin interfaceProtocolManager<MQTTInterceptor,MQTTRoutingHandler>
-
getRoutingHandler
public MQTTRoutingHandler getRoutingHandler()
- Specified by:
getRoutingHandlerin interfaceProtocolManager<MQTTInterceptor,MQTTRoutingHandler>
-
invokeIncoming
public String invokeIncoming(io.netty.handler.codec.mqtt.MqttMessage mqttMessage, MQTTConnection connection)
-
invokeOutgoing
public String invokeOutgoing(io.netty.handler.codec.mqtt.MqttMessage mqttMessage, MQTTConnection connection)
-
getStateManager
public MQTTStateManager getStateManager()
-
-