1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
//! # spectacles-brokers //! //! Message brokers which allow for simple communication between Spectacles services. //! //! ## Available Brokers //! - AMQP - An interface to connect to an AMQP-compliant server. //! ## Example AMQP Publisher //! ```rust,norun //! use std::env::var; //! use std::net::SocketAddr; //! use futures::future::Future; //! use spectacles_brokers::AmqpBroker; //! //! fn main() { //! let addr = var("AMQP_ADDR").expect("No AMQP server address found."); //! let addr: SocketAddr = addr.parse(); //! //! let connect = AmqpBroker::new(&addr, "test".to_string(), None); //! let result = connect.and_then(|broker| { //! let json = r#"{"message": "Example Publish."}"#.as_bytes(); //! broker.publish("HELLO", json.to_vec()) //! }); //! let success = result.map(|_| { //! println!("Message publish succeeded, check the other window!"); //! }).map_err(|err| { //! eprintln!("An error was encountered during publish: {}", err); //! }); //! //! tokio::run(success); //! } //! ``` //! //! More examples can be found in the examples directory on Github. #[macro_use] extern crate log; pub use errors::Error; mod errors; /// Utilities for interfacing with an AMQP-based message broker. pub mod amqp; /// Event handler for receiving messages from a message brokers. pub trait MessageHandler { fn on_message(&self, event: &str, payload: String); }