Interface EventBus
- All Superinterfaces:
Measured
An event-bus supports publish-subscribe messaging, point-to-point messaging and request-response messaging.
Message delivery is best-effort and messages can be lost if failure of all or part of the event bus occurs.
Please refer to the documentation for more information on the event bus.
- Author:
- Tim Fox
-
Field Summary
FieldsModifier and TypeFieldDescriptionDefaultSerializableclass checker used by Vert.x whenserializableChecker(Function)has not been set. -
Method Summary
Modifier and TypeMethodDescription<T> EventBusaddInboundInterceptor(Handler<DeliveryContext<T>> interceptor) Add an interceptor that will be called whenever a message is received by Vert.x<T> EventBusaddOutboundInterceptor(Handler<DeliveryContext<T>> interceptor) Add an interceptor that will be called whenever a message is sent from Vert.xclusterSerializableChecker(Function<String, Boolean> classNamePredicate) Register a predicate to invoke when verifying if an object is forbidden to be encoded/decoded asClusterSerializable.codecSelector(Function<Object, String> selector) Set selector to be invoked when the bus has not found any codec for aMessagebody.<T> MessageConsumer<T> consumer(MessageConsumerOptions options) Create a message consumer against the specified options address.<T> MessageConsumer<T> consumer(MessageConsumerOptions options, Handler<Message<T>> handler) Create a consumer and register it against the specified options address.<T> MessageConsumer<T> Create a message consumer against the specified address.<T> MessageConsumer<T> Create a consumer and register it against the specified address.<T> MessageConsumer<T> localConsumer(String address) Likeconsumer(String)but the address won't be propagated across the cluster.<T> MessageConsumer<T> localConsumer(String address, Handler<Message<T>> handler) Likeconsumer(String, Handler)but the address won't be propagated across the cluster.Publish a message.publish(String address, Object message, DeliveryOptions options) Likepublish(String, Object)but specifyingoptionsthat can be used to configure the delivery.<T> MessageProducer<T> Create a message publisher against the specified address.<T> MessageProducer<T> publisher(String address, DeliveryOptions options) Likepublisher(String)but specifying delivery options that will be used for configuring the delivery of the message.registerCodec(MessageCodec codec) Register a message codec.<T> EventBusregisterDefaultCodec(Class<T> clazz, MessageCodec<T, ?> codec) Register a default message codec.<T> EventBusremoveInboundInterceptor(Handler<DeliveryContext<T>> interceptor) Remove an interceptor that was added byaddInboundInterceptor(Handler)<T> EventBusremoveOutboundInterceptor(Handler<DeliveryContext<T>> interceptor) Remove an interceptor that was added byaddOutboundInterceptor(Handler)Sends a message and specify areplyHandlerthat will be called if the recipient subsequently replies to the message.request(String address, Object message, DeliveryOptions options) Likerequest(String, Object)but specifyingoptionsthat can be used to configure the delivery.Sends a message.send(String address, Object message, DeliveryOptions options) Likesend(String, Object)but specifyingoptionsthat can be used to configure the delivery.<T> MessageProducer<T> Create a message sender against the specified address.<T> MessageProducer<T> sender(String address, DeliveryOptions options) Likesender(String)but specifying delivery options that will be used for configuring the delivery of the message.serializableChecker(Function<String, Boolean> classNamePredicate) Register a predicate to invoke when verifying if an object is allowed to be encoded/decoded asSerializable.unregisterCodec(String name) Unregister a message codec.unregisterDefaultCodec(Class clazz) Unregister a default message codec.Methods inherited from interface Measured
isMetricsEnabled
-
Field Details
-
DEFAULT_SERIALIZABLE_CHECKER
DefaultSerializableclass checker used by Vert.x whenserializableChecker(Function)has not been set.
-
-
Method Details
-
send
-
send
Likesend(String, Object)but specifyingoptionsthat can be used to configure the delivery.- Parameters:
address- the address to send it tomessage- the message, may benulloptions- delivery options- Returns:
- a reference to this, so the API can be used fluently
-
request
Sends a message and specify areplyHandlerthat will be called if the recipient subsequently replies to the message.The message will be delivered to at most one of the handlers registered to the address.
- Parameters:
address- the address to send it tomessage- the message body, may benull- Returns:
- a future notified when any reply from the recipient is received
-
request
Likerequest(String, Object)but specifyingoptionsthat can be used to configure the delivery.- Parameters:
address- the address to send it tomessage- the message body, may benulloptions- delivery options- Returns:
- a future notified when any reply from the recipient is received
-
publish
-
publish
Likepublish(String, Object)but specifyingoptionsthat can be used to configure the delivery.- Parameters:
address- the address to publish it tomessage- the message, may benulloptions- the delivery options- Returns:
- a reference to this, so the API can be used fluently
-
consumer
Create a message consumer against the specified options address.The returned consumer is not yet registered at the address, registration will be effective when
MessageConsumer.handler(io.vertx.core.Handler)is called.- Parameters:
options- the consumer options- Returns:
- the event bus message consumer
-
consumer
Create a consumer and register it against the specified options address.- Parameters:
options- the consumer optionshandler- the handler that will process the received messages- Returns:
- the event bus message consumer
-
consumer
Create a message consumer against the specified address.The returned consumer is not yet registered at the address, registration will be effective when
MessageConsumer.handler(io.vertx.core.Handler)is called.- Parameters:
address- the address that it will register it at- Returns:
- the event bus message consumer
-
consumer
Create a consumer and register it against the specified address.- Parameters:
address- the address that will register it athandler- the handler that will process the received messages- Returns:
- the event bus message consumer
-
localConsumer
Likeconsumer(String)but the address won't be propagated across the cluster.- Parameters:
address- the address to register it at- Returns:
- the event bus message consumer
-
localConsumer
Likeconsumer(String, Handler)but the address won't be propagated across the cluster.- Parameters:
address- the address that will register it athandler- the handler that will process the received messages- Returns:
- the event bus message consumer
-
sender
Create a message sender against the specified address.The returned sender will invoke the
send(String, Object)method when the streamWriteStream.write(Object)method is called with the sender address and the provided data.- Parameters:
address- the address to send it to- Returns:
- The sender
-
sender
Likesender(String)but specifying delivery options that will be used for configuring the delivery of the message.- Parameters:
address- the address to send it tooptions- the delivery options- Returns:
- The sender
-
publisher
Create a message publisher against the specified address.The returned publisher will invoke the
publish(String, Object)method when the streamWriteStream.write(Object)method is called with the publisher address and the provided data.- Parameters:
address- The address to publish it to- Returns:
- The publisher
-
publisher
Likepublisher(String)but specifying delivery options that will be used for configuring the delivery of the message.- Parameters:
address- the address to publish it tooptions- the delivery options- Returns:
- The publisher
-
registerCodec
Register a message codec.You can register a message codec if you want to send any non standard message across the event bus. E.g. you might want to send POJOs directly across the event bus.
To use a message codec for a send, you should specify it in the delivery options.
- Parameters:
codec- the message codec to register- Returns:
- a reference to this, so the API can be used fluently
-
unregisterCodec
-
registerDefaultCodec
Register a default message codec.You can register a message codec if you want to send any non standard message across the event bus. E.g. you might want to send POJOs directly across the event bus.
Default message codecs will be used to serialise any messages of the specified type on the event bus without the codec having to be specified in the delivery options.
- Parameters:
clazz- the class for which to use this codeccodec- the message codec to register- Returns:
- a reference to this, so the API can be used fluently
-
unregisterDefaultCodec
-
codecSelector
Set selector to be invoked when the bus has not found any codec for aMessagebody.The selector must return the name of a codec which has been registered with either
registerCodec(MessageCodec)orregisterDefaultCodec(Class, MessageCodec).- Parameters:
selector- the codec selector- Returns:
- a reference to this, so the API can be used fluently
-
addOutboundInterceptor
Add an interceptor that will be called whenever a message is sent from Vert.x- Parameters:
interceptor- the interceptor- Returns:
- a reference to this, so the API can be used fluently
-
removeOutboundInterceptor
Remove an interceptor that was added byaddOutboundInterceptor(Handler)- Parameters:
interceptor- the interceptor- Returns:
- a reference to this, so the API can be used fluently
-
addInboundInterceptor
Add an interceptor that will be called whenever a message is received by Vert.x- Parameters:
interceptor- the interceptor- Returns:
- a reference to this, so the API can be used fluently
-
removeInboundInterceptor
Remove an interceptor that was added byaddInboundInterceptor(Handler)- Parameters:
interceptor- the interceptor- Returns:
- a reference to this, so the API can be used fluently
-
clusterSerializableChecker
Register a predicate to invoke when verifying if an object is forbidden to be encoded/decoded asClusterSerializable.This is only used when Vert.x is clustered.
- Parameters:
classNamePredicate- the predicate- Returns:
- a reference to this, so the API can be used fluently
-
serializableChecker
Register a predicate to invoke when verifying if an object is allowed to be encoded/decoded asSerializable.This is only used when Vert.x is clustered.
- Parameters:
classNamePredicate- the predicate- Returns:
- a reference to this, so the API can be used fluently
-