Class EventBus
- java.lang.Object
-
- io.vertx.rxjava3.core.eventbus.EventBus
-
- All Implemented Interfaces:
Measured
public class EventBus extends Object implements Measured
A Vert.x event-bus is a light-weight distributed messaging system which allows different parts of your application, or different applications and services to communicate with each in a loosely coupled way.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.
NOTE: This class has been automatically generated from the
original
non RX-ified interface using Vert.x codegen.
-
-
Field Summary
Fields Modifier and Type Field Description static io.vertx.lang.rx.TypeArg<EventBus>
__TYPE_ARG
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description <T> EventBus
addInboundInterceptor(Handler<DeliveryContext<T>> interceptor)
Add an interceptor that will be called whenever a message is received by Vert.x<T> EventBus
addOutboundInterceptor(Handler<DeliveryContext<T>> interceptor)
Add an interceptor that will be called whenever a message is sent from Vert.xEventBus
clusterSerializableChecker(java.util.function.Function<String,Boolean> classNamePredicate)
Register a predicate to invoke when verifying if an object is forbidden to be encoded/decoded asClusterSerializable
.EventBus
codecSelector(java.util.function.Function<Object,String> selector)
Set selector to be invoked when the bus has not found any codec for aMessage
body.<T> MessageConsumer<T>
consumer(String address)
Create a message consumer against the specified address.<T> MessageConsumer<T>
consumer(String address, Handler<Message<T>> handler)
Create a consumer and register it against the specified address.boolean
equals(Object o)
EventBus
getDelegate()
int
hashCode()
boolean
isMetricsEnabled()
Whether the metrics are enabled for this measured object<T> MessageConsumer<T>
localConsumer(String address)
Likeconsumer(java.lang.String)
but the address won't be propagated across the cluster.<T> MessageConsumer<T>
localConsumer(String address, Handler<Message<T>> handler)
Likeconsumer(java.lang.String)
but the address won't be propagated across the cluster.static EventBus
newInstance(EventBus arg)
EventBus
publish(String address, Object message)
Publish a message.EventBus
publish(String address, Object message, DeliveryOptions options)
Likepublish(java.lang.String, java.lang.Object)
but specifyingoptions
that can be used to configure the delivery.<T> MessageProducer<T>
publisher(String address)
Create a message publisher against the specified address.<T> MessageProducer<T>
publisher(String address, DeliveryOptions options)
Likepublisher(java.lang.String)
but specifying delivery options that will be used for configuring the delivery of the message.EventBus
registerCodec(MessageCodec codec)
Register a message codec.<T> EventBus
removeInboundInterceptor(Handler<DeliveryContext<T>> interceptor)
Remove an interceptor that was added byaddInboundInterceptor(io.vertx.core.Handler<io.vertx.rxjava3.core.eventbus.DeliveryContext<T>>)
<T> EventBus
removeOutboundInterceptor(Handler<DeliveryContext<T>> interceptor)
Remove an interceptor that was added byaddOutboundInterceptor(io.vertx.core.Handler<io.vertx.rxjava3.core.eventbus.DeliveryContext<T>>)
<T> Single<Message<T>>
request(String address, Object message)
Sends a message and specify areplyHandler
that will be called if the recipient subsequently replies to the message.<T> Single<Message<T>>
request(String address, Object message, DeliveryOptions options)
Likerequest(java.lang.String, java.lang.Object)
but specifyingoptions
that can be used to configure the delivery.<T> Single<Message<T>>
rxRequest(String address, Object message)
Sends a message and specify areplyHandler
that will be called if the recipient subsequently replies to the message.<T> Single<Message<T>>
rxRequest(String address, Object message, DeliveryOptions options)
Likerequest(java.lang.String, java.lang.Object)
but specifyingoptions
that can be used to configure the delivery.EventBus
send(String address, Object message)
Sends a message.EventBus
send(String address, Object message, DeliveryOptions options)
Likesend(java.lang.String, java.lang.Object)
but specifyingoptions
that can be used to configure the delivery.<T> MessageProducer<T>
sender(String address)
Create a message sender against the specified address.<T> MessageProducer<T>
sender(String address, DeliveryOptions options)
Likesender(java.lang.String)
but specifying delivery options that will be used for configuring the delivery of the message.EventBus
serializableChecker(java.util.function.Function<String,Boolean> classNamePredicate)
Register a predicate to invoke when verifying if an object is allowed to be encoded/decoded asSerializable
.String
toString()
EventBus
unregisterCodec(String name)
Unregister a message codec.
-
-
-
Field Detail
-
__TYPE_ARG
public static final io.vertx.lang.rx.TypeArg<EventBus> __TYPE_ARG
-
-
Method Detail
-
getDelegate
public EventBus getDelegate()
- Specified by:
getDelegate
in interfaceMeasured
-
isMetricsEnabled
public boolean isMetricsEnabled()
Whether the metrics are enabled for this measured object- Specified by:
isMetricsEnabled
in interfaceMeasured
- Returns:
true
if metrics are enabled
-
send
public EventBus send(String address, Object message)
Sends a 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, may benull
- Returns:
- a reference to this, so the API can be used fluently
-
send
public EventBus send(String address, Object message, DeliveryOptions options)
Likesend(java.lang.String, java.lang.Object)
but specifyingoptions
that can be used to configure the delivery.- Parameters:
address
- the address to send it tomessage
- the message, may benull
options
- delivery options- Returns:
- a reference to this, so the API can be used fluently
-
request
public <T> Single<Message<T>> request(String address, Object message)
Sends a message and specify areplyHandler
that 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
-
rxRequest
public <T> Single<Message<T>> rxRequest(String address, Object message)
Sends a message and specify areplyHandler
that 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
public <T> Single<Message<T>> request(String address, Object message, DeliveryOptions options)
Likerequest(java.lang.String, java.lang.Object)
but specifyingoptions
that can be used to configure the delivery.- Parameters:
address
- the address to send it tomessage
- the message body, may benull
options
- delivery options- Returns:
- a future notified when any reply from the recipient is received
-
rxRequest
public <T> Single<Message<T>> rxRequest(String address, Object message, DeliveryOptions options)
Likerequest(java.lang.String, java.lang.Object)
but specifyingoptions
that can be used to configure the delivery.- Parameters:
address
- the address to send it tomessage
- the message body, may benull
options
- delivery options- Returns:
- a future notified when any reply from the recipient is received
-
publish
public EventBus publish(String address, Object message)
Publish a message.The message will be delivered to all handlers registered to the address.
- Parameters:
address
- the address to publish it tomessage
- the message, may benull
- Returns:
- a reference to this, so the API can be used fluently
-
publish
public EventBus publish(String address, Object message, DeliveryOptions options)
Likepublish(java.lang.String, java.lang.Object)
but specifyingoptions
that can be used to configure the delivery.- Parameters:
address
- the address to publish it tomessage
- the message, may benull
options
- the delivery options- Returns:
- a reference to this, so the API can be used fluently
-
consumer
public <T> MessageConsumer<T> consumer(String address)
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<io.vertx.rxjava3.core.eventbus.Message<T>>)
is called.- Parameters:
address
- the address that it will register it at- Returns:
- the event bus message consumer
-
consumer
public <T> MessageConsumer<T> consumer(String address, Handler<Message<T>> handler)
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
public <T> MessageConsumer<T> localConsumer(String address)
Likeconsumer(java.lang.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
public <T> MessageConsumer<T> localConsumer(String address, Handler<Message<T>> handler)
Likeconsumer(java.lang.String)
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
public <T> MessageProducer<T> sender(String address)
Create a message sender against the specified address.The returned sender will invoke the
send(java.lang.String, java.lang.Object)
method when the streamWriteStream.write(T)
method is called with the sender address and the provided data.- Parameters:
address
- the address to send it to- Returns:
- The sender
-
sender
public <T> MessageProducer<T> sender(String address, DeliveryOptions options)
Likesender(java.lang.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
public <T> MessageProducer<T> publisher(String address)
Create a message publisher against the specified address.The returned publisher will invoke the
publish(java.lang.String, java.lang.Object)
method when the streamWriteStream.write(T)
method is called with the publisher address and the provided data.- Parameters:
address
- The address to publish it to- Returns:
- The publisher
-
publisher
public <T> MessageProducer<T> publisher(String address, DeliveryOptions options)
Likepublisher(java.lang.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
-
codecSelector
public EventBus codecSelector(java.util.function.Function<Object,String> selector)
Set selector to be invoked when the bus has not found any codec for aMessage
body.The selector must return the name of a codec which has been registered with either
registerCodec(io.vertx.core.eventbus.MessageCodec)
orio.vertx.rxjava3.core.eventbus.EventBus#registerDefaultCodec
.- Parameters:
selector
- the codec selector- Returns:
- a reference to this, so the API can be used fluently
-
addOutboundInterceptor
public <T> EventBus addOutboundInterceptor(Handler<DeliveryContext<T>> interceptor)
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
public <T> EventBus removeOutboundInterceptor(Handler<DeliveryContext<T>> interceptor)
Remove an interceptor that was added byaddOutboundInterceptor(io.vertx.core.Handler<io.vertx.rxjava3.core.eventbus.DeliveryContext<T>>)
- Parameters:
interceptor
- the interceptor- Returns:
- a reference to this, so the API can be used fluently
-
addInboundInterceptor
public <T> EventBus addInboundInterceptor(Handler<DeliveryContext<T>> interceptor)
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
public <T> EventBus removeInboundInterceptor(Handler<DeliveryContext<T>> interceptor)
Remove an interceptor that was added byaddInboundInterceptor(io.vertx.core.Handler<io.vertx.rxjava3.core.eventbus.DeliveryContext<T>>)
- Parameters:
interceptor
- the interceptor- Returns:
- a reference to this, so the API can be used fluently
-
clusterSerializableChecker
public EventBus clusterSerializableChecker(java.util.function.Function<String,Boolean> classNamePredicate)
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
public EventBus serializableChecker(java.util.function.Function<String,Boolean> classNamePredicate)
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
-
registerCodec
public EventBus registerCodec(MessageCodec codec)
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
public EventBus unregisterCodec(String name)
Unregister a message codec.- Parameters:
name
- the name of the codec- Returns:
- a reference to this, so the API can be used fluently
-
-