Interface ProtocolManager<P extends org.apache.activemq.artemis.api.core.BaseInterceptor, R extends org.apache.activemq.artemis.core.server.routing.RoutingHandler>
- All Known Implementing Classes:
AbstractProtocolManager
public interface ProtocolManager<P extends org.apache.activemq.artemis.api.core.BaseInterceptor, R extends org.apache.activemq.artemis.core.server.routing.RoutingHandler>
Info: ProtocolManager is loaded by
RemotingServiceImpl.loadProtocolManagerFactories(Iterable)-
Method Summary
Modifier and TypeMethodDescriptionbooleanIf this protocols accepts connectoins without an initial handshake.voidaddChannelHandlers(io.netty.channel.ChannelPipeline pipeline) org.apache.activemq.artemis.spi.core.protocol.ConnectionEntrycreateConnectionEntry(Acceptor acceptorUsed, org.apache.activemq.artemis.spi.core.remoting.Connection connection) Map<org.apache.activemq.artemis.api.core.SimpleString, org.apache.activemq.artemis.api.core.RoutingType> voidhandleBuffer(org.apache.activemq.artemis.spi.core.protocol.RemotingConnection connection, org.apache.activemq.artemis.api.core.ActiveMQBuffer buffer) voidhandshake(org.apache.activemq.artemis.core.remoting.impl.netty.NettyServerConnection connection, org.apache.activemq.artemis.api.core.ActiveMQBuffer buffer) booleanisProtocol(byte[] array) default voidremoveHandler(String name) voidsetAnycastPrefix(String anycastPrefix) voidsetMulticastPrefix(String multicastPrefix) voidsetSecurityDomain(String securityDomain) voidupdateInterceptors(List<org.apache.activemq.artemis.api.core.BaseInterceptor> incomingInterceptors, List<org.apache.activemq.artemis.api.core.BaseInterceptor> outgoingInterceptors) This method will receive all the interceptors on the system and you should filter them outA list of the IANA websocket subprotocol identifiers (https://www.iana.org/assignments/websocket/websocket.xhtml) supported by this protocol manager.
-
Method Details
-
getFactory
ProtocolManagerFactory<P> getFactory() -
updateInterceptors
-
createConnectionEntry
org.apache.activemq.artemis.spi.core.protocol.ConnectionEntry createConnectionEntry(Acceptor acceptorUsed, org.apache.activemq.artemis.spi.core.remoting.Connection connection) -
removeHandler
-
handleBuffer
void handleBuffer(org.apache.activemq.artemis.spi.core.protocol.RemotingConnection connection, org.apache.activemq.artemis.api.core.ActiveMQBuffer buffer) -
addChannelHandlers
void addChannelHandlers(io.netty.channel.ChannelPipeline pipeline) -
isProtocol
boolean isProtocol(byte[] array) -
acceptsNoHandshake
boolean acceptsNoHandshake()If this protocols accepts connectoins without an initial handshake. If true this protocol will be the failback case no other connections are made. New designed protocols should always require a handshake. This is only useful for legacy protocols. -
handshake
void handshake(org.apache.activemq.artemis.core.remoting.impl.netty.NettyServerConnection connection, org.apache.activemq.artemis.api.core.ActiveMQBuffer buffer) -
websocketSubprotocolIdentifiers
-
setAnycastPrefix
-
setMulticastPrefix
-
getPrefixes
Map<org.apache.activemq.artemis.api.core.SimpleString, org.apache.activemq.artemis.api.core.RoutingType> getPrefixes() -
setSecurityDomain
-
getSecurityDomain
String getSecurityDomain() -
getRoutingHandler
R getRoutingHandler()
-