client.rs

 1extern crate xmpp;
 2
 3use xmpp::jid::Jid;
 4use xmpp::client::ClientBuilder;
 5use xmpp::plugins::messaging::{MessagingPlugin, MessageEvent};
 6use xmpp::plugins::presence::{PresencePlugin, Show};
 7use xmpp::sasl::mechanisms::Plain;
 8
 9use std::env;
10
11fn main() {
12    let jid: Jid = env::var("JID").unwrap().parse().unwrap();
13    let mut client = ClientBuilder::new(jid.clone()).connect().unwrap();
14    client.register_plugin(MessagingPlugin::new());
15    client.register_plugin(PresencePlugin::new());
16    let pass = env::var("PASS").unwrap();
17    client.connect(&mut Plain::new(jid.node.clone().expect("JID requires a node"), pass)).unwrap();
18    client.plugin::<PresencePlugin>().set_presence(Show::Available, None).unwrap();
19    loop {
20        let event = client.next_event().unwrap();
21        if let Some(evt) = event.downcast::<MessageEvent>() {
22            println!("{:?}", evt);
23        }
24    }
25}