Download
You will need a RabbitMQ client to connect to the UH Message Broker.
- Java
- Download the Java Client
- Sample Code
- UHIMSEventsServiceImpl.java, a Java consumer used for UHIMS Events
- RabbitMqConnector.java, a Java producer for a SECE exchange
- Perl
- AnyEvent::RabbitMQ
- We chose it mostly because it didn't require us to install additional software.
- We have created a module named RabbitMessaging that uses AnyEvent::RabbitMQ.
- It is much friendlier, but probably at the expense of AnyEvent functionality.
- Read the warning about the consume() method in the RabbitMessaging.pm source code. You may want to use the get_message() method instead.
- To use RabbitMessaging:
- Download our RabbitMessaging.pm module
- Install version 1.16 of AnyEvent::RabbitMQ or the latest version
- Note that that AnyEvent::RabbitMQ version 1.16 or higher already includes the following patches which we previously had to manually apply to version 1.05 of AnyEvent::RabbitMQ
- RabbitMQ-tls.patch to /usr/local/lib/site_perl/5../AnyEvent/RabbitMQ/RabbitMQ.pm (for TLS support)
- The following patch was never necessary, though it is harmless if you already have it installed:
- RabbitMQ-Channel-args.patch for /usr/local/lib/site_perl/5../AnyEvent/RabbitMQ/Channel.pm
- AnyEvent::RabbitMQ version 1.20_21 includes our patch to support the no_ack flag for the get method.
- Patch Net::AMQP::Common.pm and add the "l => \&unpack_long_long_integer" line as shown below. This is necessary with our upgrade to RabbitMQ 3.11 and/or because of quorum queues.
my %_unpack_field_types = ( V => sub { undef }, S => \&unpack_long_string, I => \&unpack_long_integer, l => \&unpack_long_long_integer, D => sub { my $input_ref = shift; my $exp = unpack_octet($input_ref); my $num = unpack_long_integer($input_ref); $num / 10.0 ** $exp; }, F => \&unpack_field_table, A => \&unpack_field_array, T => \&unpack_timestamp, t => \&unpack_boolean, );
- Use sample-RabbitMessaging-code as a template for your app.
- Net::STOMP::Client
- Recommended by someone in the rabbitmq-discuss mailing list, its author is active in this list.
- POE::Component::Client::AMQP
- Also mentioned in rabbitmq-discuss mailing list.
- AnyEvent::RabbitMQ
- Other clients from the RabbitMQ website:
- .NET/C#
- Erlang
You may find it easier to go to http://www.rabbitmq.com/download.html and use the quick download links for each of the above languages.
You will need a RabbitMQ client to connect to the UH Message Broker.
- Java
- Download the Java Client
- Sample Code
- UHIMSEventsServiceImpl.java, a Java consumer used for UHIMS Events
- RabbitMqConnector.java, a Java producer for a SECE exchange
- Perl
- AnyEvent::RabbitMQ
- We chose it mostly because it didn't require us to install additional software.
- We have created a module named RabbitMessaging that uses AnyEvent::RabbitMQ.
- It is much friendlier, but probably at the expense of AnyEvent functionality.
- Read the warning about the consume() method in the RabbitMessaging.pm source code. You may want to use the get_message() method instead.
- To use RabbitMessaging:
- Download our RabbitMessaging.pm module
- Install version 1.16 of AnyEvent::RabbitMQ or the latest version
- Note that that AnyEvent::RabbitMQ version 1.16 or higher already includes the following patches which we previously had to manually apply to version 1.05 of AnyEvent::RabbitMQ
- RabbitMQ-tls.patch to /usr/local/lib/site_perl/5../AnyEvent/RabbitMQ/RabbitMQ.pm (for TLS support)
- The following patch was never necessary, though it is harmless if you already have it installed:
- RabbitMQ-Channel-args.patch for /usr/local/lib/site_perl/5../AnyEvent/RabbitMQ/Channel.pm
- AnyEvent::RabbitMQ version 1.20_21 includes our patch to support the no_ack flag for the get method.
- Use sample-RabbitMessaging-code as a template for your app.
- Net::STOMP::Client
- Recommended by someone in the rabbitmq-discuss mailing list, its author is active in this list.
- POE::Component::Client::AMQP
- Also mentioned in rabbitmq-discuss mailing list.
- AnyEvent::RabbitMQ
- Other clients from the RabbitMQ website:
- .NET/C#
- Erlang
You may find it easier to go to http://www.rabbitmq.com/download.html and use the quick download links for each of the above languages.