public interface EventBus
Messages sent over the event bus are represented by instances of the Message
class.
For publish / subscribe, messages can be published to an address using one of the publish(java.lang.String, java.lang.Object)
methods. An
address is a simple String
instance.
Handlers are registered against an address. There can be multiple handlers registered against each address, and a particular handler can be registered against multiple addresses. The event bus will route a sent message to all handlers which are registered against that address.
For point to point messaging, messages can be sent to an address using one of the send(java.lang.String, java.lang.Object)
methods.
The messages will be delivered to a single handler, if one is registered on that address. If more than one
handler is registered on the same address, Vert.x will choose one and deliver the message to that. Vert.x will
aim to fairly distribute messages in a round-robin way, but does not guarantee strict round-robin under all
circumstances.
All messages sent over the bus are transient. On event of failure of all or part of the event bus messages may be lost. Applications should be coded to cope with lost messages, e.g. by resending them, and making application services idempotent.
The order of messages received by any specific handler from a specific sender should match the order of messages sent from that sender.
When sending a message, a reply handler can be provided. If so, it will be called when the reply from the receiver has been received. Reply messages can also be replied to, etc, ad infinitum
Different event bus instances can be clustered together over a network, to give a single logical event bus.
Instances of EventBus are thread-safe.
If handlers are registered from an event loop, they will be executed using that same event loop. If they are registered from outside an event loop (i.e. when using Vert.x embedded) then Vert.x will assign an event loop to the handler and use it to deliver messages to that handler.
Modifier and Type | Method and Description |
---|---|
void |
close(Handler<AsyncResult<java.lang.Void>> doneHandler)
Close the EventBus and release all resources.
|
long |
getDefaultReplyTimeout()
Return the value for default send timeout
|
EventBus |
publish(java.lang.String address,
java.lang.Boolean message)
Publish a Boolean as a message
|
EventBus |
publish(java.lang.String address,
Buffer message)
Publish a Buffer as a message
|
EventBus |
publish(java.lang.String address,
java.lang.Byte message)
Publish a Byte as a message
|
EventBus |
publish(java.lang.String address,
byte[] message)
Publish a byte[] as a message
|
EventBus |
publish(java.lang.String address,
java.lang.Character message)
Publish a Character as a message
|
EventBus |
publish(java.lang.String address,
java.lang.Double message)
Publish a Double as a message
|
EventBus |
publish(java.lang.String address,
java.lang.Float message)
Publish a Float as a message
|
EventBus |
publish(java.lang.String address,
java.lang.Integer message)
Publish an Integer as a message
|
EventBus |
publish(java.lang.String address,
JsonArray message)
Publish a JSON array as a message
|
EventBus |
publish(java.lang.String address,
JsonObject message)
Publish a JSON object as a message
|
EventBus |
publish(java.lang.String address,
java.lang.Long message)
Publish a Long as a message
|
EventBus |
publish(java.lang.String address,
java.lang.Object message)
Publish a message
|
EventBus |
publish(java.lang.String address,
java.lang.Short message)
Publish a Short as a message
|
EventBus |
publish(java.lang.String address,
java.lang.String message)
Publish a String as a message
|
EventBus |
registerHandler(java.lang.String address,
Handler<? extends Message> handler)
Registers a handler against the specified address
|
EventBus |
registerHandler(java.lang.String address,
Handler<? extends Message> handler,
Handler<AsyncResult<java.lang.Void>> resultHandler)
Registers a handler against the specified address
|
EventBus |
registerLocalHandler(java.lang.String address,
Handler<? extends Message> handler)
Registers a local handler against the specified address.
|
EventBus |
send(java.lang.String address,
java.lang.Boolean message)
Send a Boolean as a message
|
<T> EventBus |
send(java.lang.String address,
java.lang.Boolean message,
Handler<Message<T>> replyHandler)
Send a Boolean as a message
|
EventBus |
send(java.lang.String address,
Buffer message)
Send a Buffer as a message
|
<T> EventBus |
send(java.lang.String address,
Buffer message,
Handler<Message<T>> replyHandler)
Send a Buffer as a message
|
EventBus |
send(java.lang.String address,
java.lang.Byte message)
Send a Byte as a message
|
EventBus |
send(java.lang.String address,
byte[] message)
Send a byte[] as a message
|
<T> EventBus |
send(java.lang.String address,
byte[] message,
Handler<Message<T>> replyHandler)
Send a byte[] as a message
|
<T> EventBus |
send(java.lang.String address,
java.lang.Byte message,
Handler<Message<T>> replyHandler)
Send a Byte as a message
|
EventBus |
send(java.lang.String address,
java.lang.Character message)
Send a Character as a message
|
<T> EventBus |
send(java.lang.String address,
java.lang.Character message,
Handler<Message<T>> replyHandler)
Send a Character as a message
|
EventBus |
send(java.lang.String address,
java.lang.Double message)
Send a Double as a message
|
<T> EventBus |
send(java.lang.String address,
java.lang.Double message,
Handler<Message<T>> replyHandler)
Send a Double as a message
|
EventBus |
send(java.lang.String address,
java.lang.Float message)
Send a Float as a message
|
<T> EventBus |
send(java.lang.String address,
java.lang.Float message,
Handler<Message<T>> replyHandler)
Send a Float as a message
|
EventBus |
send(java.lang.String address,
java.lang.Integer message)
Send an Integer as a message
|
<T> EventBus |
send(java.lang.String address,
java.lang.Integer message,
Handler<Message<T>> replyHandler)
Send an Integer as a message
|
EventBus |
send(java.lang.String address,
JsonArray message)
Send a JSON array as a message
|
<T> EventBus |
send(java.lang.String address,
JsonArray message,
Handler<Message<T>> replyHandler)
Send a JSON array as a message
|
EventBus |
send(java.lang.String address,
JsonObject message)
Send a JSON object as a message
|
<T> EventBus |
send(java.lang.String address,
JsonObject message,
Handler<Message<T>> replyHandler)
Send a JSON object as a message
|
EventBus |
send(java.lang.String address,
java.lang.Long message)
Send a Long as a message
|
<T> EventBus |
send(java.lang.String address,
java.lang.Long message,
Handler<Message<T>> replyHandler)
Send a Long as a message
|
EventBus |
send(java.lang.String address,
java.lang.Object message)
Send a message
|
EventBus |
send(java.lang.String address,
java.lang.Object message,
Handler<Message> replyHandler)
Send a message
|
EventBus |
send(java.lang.String address,
java.lang.Short message)
Send a Short as a message
|
<T> EventBus |
send(java.lang.String address,
java.lang.Short message,
Handler<Message<T>> replyHandler)
Send a Short as a message
|
EventBus |
send(java.lang.String address,
java.lang.String message)
Send a String as a message
|
<T> EventBus |
send(java.lang.String address,
java.lang.String message,
Handler<Message<T>> replyHandler)
Send a String as a message
|
<T> EventBus |
sendWithTimeout(java.lang.String address,
java.lang.Boolean message,
long timeout,
Handler<AsyncResult<Message<T>>> replyHandler)
Send a boolean as a message
|
<T> EventBus |
sendWithTimeout(java.lang.String address,
Buffer message,
long timeout,
Handler<AsyncResult<Message<T>>> replyHandler)
Send a Buffer object as a message
|
<T> EventBus |
sendWithTimeout(java.lang.String address,
byte[] message,
long timeout,
Handler<AsyncResult<Message<T>>> replyHandler)
Send a byte[] object as a message
|
<T> EventBus |
sendWithTimeout(java.lang.String address,
java.lang.Byte message,
long timeout,
Handler<AsyncResult<Message<T>>> replyHandler)
Send a byte as a message
|
<T> EventBus |
sendWithTimeout(java.lang.String address,
java.lang.Character message,
long timeout,
Handler<AsyncResult<Message<T>>> replyHandler)
Send a character as a message
|
<T> EventBus |
sendWithTimeout(java.lang.String address,
java.lang.Double message,
long timeout,
Handler<AsyncResult<Message<T>>> replyHandler)
Send a double as a message
|
<T> EventBus |
sendWithTimeout(java.lang.String address,
java.lang.Float message,
long timeout,
Handler<AsyncResult<Message<T>>> replyHandler)
Send a float as a message
|
<T> EventBus |
sendWithTimeout(java.lang.String address,
java.lang.Integer message,
long timeout,
Handler<AsyncResult<Message<T>>> replyHandler)
Send an Integer as a message
|
<T> EventBus |
sendWithTimeout(java.lang.String address,
JsonArray message,
long timeout,
Handler<AsyncResult<Message<T>>> replyHandler)
Send a JSON array as a message
|
<T> EventBus |
sendWithTimeout(java.lang.String address,
JsonObject message,
long timeout,
Handler<AsyncResult<Message<T>>> replyHandler)
Send a JSON object as a message
|
<T> EventBus |
sendWithTimeout(java.lang.String address,
java.lang.Long message,
long timeout,
Handler<AsyncResult<Message<T>>> replyHandler)
Send a long as a message
|
<T> EventBus |
sendWithTimeout(java.lang.String address,
java.lang.Object message,
long timeout,
Handler<AsyncResult<Message<T>>> replyHandler)
Send an object as a message
|
<T> EventBus |
sendWithTimeout(java.lang.String address,
java.lang.Short message,
long timeout,
Handler<AsyncResult<Message<T>>> replyHandler)
Send a short as a message
|
<T> EventBus |
sendWithTimeout(java.lang.String address,
java.lang.String message,
long timeout,
Handler<AsyncResult<Message<T>>> replyHandler)
Send a string object as a message
|
EventBus |
setDefaultReplyTimeout(long timeoutMs)
Sets a default timeout, in ms, for replies.
|
EventBus |
unregisterHandler(java.lang.String address,
Handler<? extends Message> handler)
Unregisters a handler given the address and the handler
|
EventBus |
unregisterHandler(java.lang.String address,
Handler<? extends Message> handler,
Handler<AsyncResult<java.lang.Void>> resultHandler)
Unregisters a handler given the address and the handler
|
void close(Handler<AsyncResult<java.lang.Void>> doneHandler)
doneHandler
- EventBus send(java.lang.String address, java.lang.Object message)
address
- The address to send it tomessage
- The messageEventBus send(java.lang.String address, java.lang.Object message, Handler<Message> replyHandler)
address
- The address to send it tomessage
- The messagereplyHandler
- Reply handler will be called when any reply from the recipient is received<T> EventBus sendWithTimeout(java.lang.String address, java.lang.Object message, long timeout, Handler<AsyncResult<Message<T>>> replyHandler)
address
- The address to send it tomessage
- The messagetimeout
- - Timeout in ms. If no reply received within the timeout then the reply handler will be unregisteredreplyHandler
- Reply handler will be called when any reply from the recipient is received<T> EventBus send(java.lang.String address, JsonObject message, Handler<Message<T>> replyHandler)
address
- The address to send it tomessage
- The messagereplyHandler
- Reply handler will be called when any reply from the recipient is received<T> EventBus sendWithTimeout(java.lang.String address, JsonObject message, long timeout, Handler<AsyncResult<Message<T>>> replyHandler)
address
- The address to send it tomessage
- The messagetimeout
- - Timeout in ms. If no reply received within the timeout then the reply handler will be unregisteredreplyHandler
- Reply handler will be called when any reply from the recipient is receivedEventBus send(java.lang.String address, JsonObject message)
address
- The address to send it tomessage
- The message<T> EventBus send(java.lang.String address, JsonArray message, Handler<Message<T>> replyHandler)
address
- The address to send it tomessage
- The messagereplyHandler
- Reply handler will be called when any reply from the recipient is received<T> EventBus sendWithTimeout(java.lang.String address, JsonArray message, long timeout, Handler<AsyncResult<Message<T>>> replyHandler)
address
- The address to send it tomessage
- The messagetimeout
- - Timeout in ms. If no reply received within the timeout then the reply handler will be unregisteredreplyHandler
- Reply handler will be called when any reply from the recipient is receivedEventBus send(java.lang.String address, JsonArray message)
address
- The address to send it tomessage
- The message<T> EventBus send(java.lang.String address, Buffer message, Handler<Message<T>> replyHandler)
address
- The address to send it tomessage
- The messagereplyHandler
- Reply handler will be called when any reply from the recipient is received<T> EventBus sendWithTimeout(java.lang.String address, Buffer message, long timeout, Handler<AsyncResult<Message<T>>> replyHandler)
address
- The address to send it tomessage
- The messagetimeout
- - Timeout in ms. If no reply received within the timeout then the reply handler will be unregisteredreplyHandler
- Reply handler will be called when any reply from the recipient is receivedEventBus send(java.lang.String address, Buffer message)
address
- The address to send it tomessage
- The message<T> EventBus send(java.lang.String address, byte[] message, Handler<Message<T>> replyHandler)
address
- The address to send it tomessage
- The messagereplyHandler
- Reply handler will be called when any reply from the recipient is received<T> EventBus sendWithTimeout(java.lang.String address, byte[] message, long timeout, Handler<AsyncResult<Message<T>>> replyHandler)
address
- The address to send it tomessage
- The messagetimeout
- - Timeout in ms. If no reply received within the timeout then the reply handler will be unregisteredreplyHandler
- Reply handler will be called when any reply from the recipient is receivedEventBus send(java.lang.String address, byte[] message)
address
- The address to send it tomessage
- The message<T> EventBus send(java.lang.String address, java.lang.String message, Handler<Message<T>> replyHandler)
address
- The address to send it tomessage
- The messagereplyHandler
- Reply handler will be called when any reply from the recipient is received<T> EventBus sendWithTimeout(java.lang.String address, java.lang.String message, long timeout, Handler<AsyncResult<Message<T>>> replyHandler)
address
- The address to send it tomessage
- The messagetimeout
- - Timeout in ms. If no reply received within the timeout then the reply handler will be unregisteredreplyHandler
- Reply handler will be called when any reply from the recipient is receivedEventBus send(java.lang.String address, java.lang.String message)
address
- The address to send it tomessage
- The message<T> EventBus send(java.lang.String address, java.lang.Integer message, Handler<Message<T>> replyHandler)
address
- The address to send it tomessage
- The messagereplyHandler
- Reply handler will be called when any reply from the recipient is received<T> EventBus sendWithTimeout(java.lang.String address, java.lang.Integer message, long timeout, Handler<AsyncResult<Message<T>>> replyHandler)
address
- The address to send it tomessage
- The messagetimeout
- - Timeout in ms. If no reply received within the timeout then the reply handler will be unregisteredreplyHandler
- Reply handler will be called when any reply from the recipient is receivedEventBus send(java.lang.String address, java.lang.Integer message)
address
- The address to send it tomessage
- The message<T> EventBus send(java.lang.String address, java.lang.Long message, Handler<Message<T>> replyHandler)
address
- The address to send it tomessage
- The messagereplyHandler
- Reply handler will be called when any reply from the recipient is received<T> EventBus sendWithTimeout(java.lang.String address, java.lang.Long message, long timeout, Handler<AsyncResult<Message<T>>> replyHandler)
address
- The address to send it tomessage
- The messagetimeout
- - Timeout in ms. If no reply received within the timeout then the reply handler will be unregisteredreplyHandler
- Reply handler will be called when any reply from the recipient is receivedEventBus send(java.lang.String address, java.lang.Long message)
address
- The address to send it tomessage
- The message<T> EventBus send(java.lang.String address, java.lang.Float message, Handler<Message<T>> replyHandler)
address
- The address to send it tomessage
- The messagereplyHandler
- Reply handler will be called when any reply from the recipient is received<T> EventBus sendWithTimeout(java.lang.String address, java.lang.Float message, long timeout, Handler<AsyncResult<Message<T>>> replyHandler)
address
- The address to send it tomessage
- The messagetimeout
- - Timeout in ms. If no reply received within the timeout then the reply handler will be unregisteredreplyHandler
- Reply handler will be called when any reply from the recipient is receivedEventBus send(java.lang.String address, java.lang.Float message)
address
- The address to send it tomessage
- The message<T> EventBus send(java.lang.String address, java.lang.Double message, Handler<Message<T>> replyHandler)
address
- The address to send it tomessage
- The messagereplyHandler
- Reply handler will be called when any reply from the recipient is received<T> EventBus sendWithTimeout(java.lang.String address, java.lang.Double message, long timeout, Handler<AsyncResult<Message<T>>> replyHandler)
address
- The address to send it tomessage
- The messagetimeout
- - Timeout in ms. If no reply received within the timeout then the reply handler will be unregisteredreplyHandler
- Reply handler will be called when any reply from the recipient is receivedEventBus send(java.lang.String address, java.lang.Double message)
address
- The address to send it tomessage
- The message<T> EventBus send(java.lang.String address, java.lang.Boolean message, Handler<Message<T>> replyHandler)
address
- The address to send it tomessage
- The messagereplyHandler
- Reply handler will be called when any reply from the recipient is received<T> EventBus sendWithTimeout(java.lang.String address, java.lang.Boolean message, long timeout, Handler<AsyncResult<Message<T>>> replyHandler)
address
- The address to send it tomessage
- The messagetimeout
- - Timeout in ms. If no reply received within the timeout then the reply handler will be unregisteredreplyHandler
- Reply handler will be called when any reply from the recipient is receivedEventBus send(java.lang.String address, java.lang.Boolean message)
address
- The address to send it tomessage
- The message<T> EventBus send(java.lang.String address, java.lang.Short message, Handler<Message<T>> replyHandler)
address
- The address to send it tomessage
- The messagereplyHandler
- Reply handler will be called when any reply from the recipient is received<T> EventBus sendWithTimeout(java.lang.String address, java.lang.Short message, long timeout, Handler<AsyncResult<Message<T>>> replyHandler)
address
- The address to send it tomessage
- The messagetimeout
- - Timeout in ms. If no reply received within the timeout then the reply handler will be unregisteredreplyHandler
- Reply handler will be called when any reply from the recipient is receivedEventBus send(java.lang.String address, java.lang.Short message)
address
- The address to send it tomessage
- The message<T> EventBus send(java.lang.String address, java.lang.Character message, Handler<Message<T>> replyHandler)
address
- The address to send it tomessage
- The messagereplyHandler
- Reply handler will be called when any reply from the recipient is received<T> EventBus sendWithTimeout(java.lang.String address, java.lang.Character message, long timeout, Handler<AsyncResult<Message<T>>> replyHandler)
address
- The address to send it tomessage
- The messagetimeout
- - Timeout in ms. If no reply received within the timeout then the reply handler will be unregisteredreplyHandler
- Reply handler will be called when any reply from the recipient is receivedEventBus send(java.lang.String address, java.lang.Character message)
address
- The address to send it tomessage
- The message<T> EventBus send(java.lang.String address, java.lang.Byte message, Handler<Message<T>> replyHandler)
address
- The address to send it tomessage
- The messagereplyHandler
- Reply handler will be called when any reply from the recipient is received<T> EventBus sendWithTimeout(java.lang.String address, java.lang.Byte message, long timeout, Handler<AsyncResult<Message<T>>> replyHandler)
address
- The address to send it tomessage
- The messagetimeout
- - Timeout in ms. If no reply received within the timeout then the reply handler will be unregisteredreplyHandler
- Reply handler will be called when any reply from the recipient is receivedEventBus send(java.lang.String address, java.lang.Byte message)
address
- The address to send it tomessage
- The messageEventBus publish(java.lang.String address, java.lang.Object message)
address
- The address to publish it tomessage
- The messageEventBus publish(java.lang.String address, JsonObject message)
address
- The address to publish it tomessage
- The messageEventBus publish(java.lang.String address, JsonArray message)
address
- The address to publish it tomessage
- The message SEventBus publish(java.lang.String address, Buffer message)
address
- The address to publish it tomessage
- The messageEventBus publish(java.lang.String address, byte[] message)
address
- The address to publish it tomessage
- The messageEventBus publish(java.lang.String address, java.lang.String message)
address
- The address to publish it tomessage
- The messageEventBus publish(java.lang.String address, java.lang.Integer message)
address
- The address to publish it tomessage
- The messageEventBus publish(java.lang.String address, java.lang.Long message)
address
- The address to publish it tomessage
- The messageEventBus publish(java.lang.String address, java.lang.Float message)
address
- The address to publish it tomessage
- The messageEventBus publish(java.lang.String address, java.lang.Double message)
address
- The address to publish it tomessage
- The messageEventBus publish(java.lang.String address, java.lang.Boolean message)
address
- The address to publish it tomessage
- The messageEventBus publish(java.lang.String address, java.lang.Short message)
address
- The address to publish it tomessage
- The messageEventBus publish(java.lang.String address, java.lang.Character message)
address
- The address to publish it tomessage
- The messageEventBus publish(java.lang.String address, java.lang.Byte message)
address
- The address to publish it tomessage
- The messageEventBus unregisterHandler(java.lang.String address, Handler<? extends Message> handler, Handler<AsyncResult<java.lang.Void>> resultHandler)
address
- The address the handler was registered athandler
- The handlerresultHandler
- Optional completion handler. If specified, when the unregister has been
propagated to all nodes of the event bus, the handler will be called.EventBus unregisterHandler(java.lang.String address, Handler<? extends Message> handler)
address
- The address the handler was registered athandler
- The handlerEventBus registerHandler(java.lang.String address, Handler<? extends Message> handler, Handler<AsyncResult<java.lang.Void>> resultHandler)
address
- The address to register it athandler
- The handlerresultHandler
- Optional completion handler. If specified, when the register has been
propagated to all nodes of the event bus, the handler will be called.EventBus registerHandler(java.lang.String address, Handler<? extends Message> handler)
address
- The address to register it athandler
- The handlerEventBus registerLocalHandler(java.lang.String address, Handler<? extends Message> handler)
address
- The address to register it athandler
- The handlerEventBus setDefaultReplyTimeout(long timeoutMs)
timeoutMs
- long getDefaultReplyTimeout()