client.rs

 1extern crate xmpp;
 2
 3use xmpp::jid::Jid;
 4use xmpp::client::ClientBuilder;
 5use xmpp::plugins::stanza::StanzaPlugin;
 6use xmpp::plugins::messaging::{MessagingPlugin, MessageEvent};
 7use xmpp::plugins::presence::{PresencePlugin, Type};
 8use xmpp::plugins::ping::{PingPlugin, PingEvent};
 9
10use std::env;
11
12fn main() {
13    let jid: Jid = env::var("JID").unwrap().parse().unwrap();
14    let pass = env::var("PASS").unwrap();
15    let mut client = ClientBuilder::new(jid.clone())
16                                   .password(pass)
17                                   .connect()
18                                   .unwrap();
19    client.register_plugin(StanzaPlugin::new());
20    client.register_plugin(MessagingPlugin::new());
21    client.register_plugin(PresencePlugin::new());
22    client.register_plugin(PingPlugin::new());
23    client.plugin::<PresencePlugin>().set_presence(Type::Available, None, None).unwrap();
24    client.main().unwrap();
25    /*loop {
26        let event = client.next_event().unwrap();
27        if let Some(evt) = event.downcast::<MessageEvent>() {
28            println!("{:?}", evt);
29        }
30        else if let Some(evt) = event.downcast::<PingEvent>() {
31            println!("{:?}", evt);
32            client.plugin::<PingPlugin>().reply_ping(evt);
33        }
34    }*/
35}