main/
main.rs

1use std::time::Duration;
2
3use queen::{Socket, Node, Port, NonHook};
4use queen::net::{NsonCodec, KeepAlive};
5use queen::dict::*;
6use queen::nson::{MessageId, msg};
7use queen::error::Code;
8
9fn main() {
10    let socket = Socket::new(MessageId::new(), NonHook).unwrap();
11
12    // start wire 1
13    let wire1 = socket.connect(MessageId::new(), false, msg!{}, None, None).unwrap();
14
15    wire1.send(msg!{
16        CHAN: PING
17    }).unwrap();
18
19    let ret = wire1.wait(Some(Duration::from_secs(1))).unwrap();
20    println!("wire 1 ping ret: {:?}", ret);
21
22    // start node
23    let _node = Node::<NsonCodec>::new(
24        socket.clone(),
25        4,
26        vec!["127.0.0.1:8888".parse().unwrap()],
27        KeepAlive::default(),
28        ()
29    ).unwrap();
30
31    // start port
32    let port = Port::<NsonCodec>::new(KeepAlive::default()).unwrap();
33
34    // start wire 2
35    let wire2 = port.connect("127.0.0.1:8888", MessageId::new(), false, msg!{}, None, None).unwrap();
36
37    wire2.send(msg!{
38        CHAN: PING
39    }).unwrap();
40
41    let ret = wire2.wait(Some(Duration::from_secs(1))).unwrap();
42    if let Some(err) = Code::get(&ret) {
43        if err != Code::Ok {
44            println!("wire 2 ping error: {:?}", err);
45            return
46        }
47    }
48
49    println!("wire 2 ping ret: {:?}", ret);
50
51    // wire 1 attach
52    wire1.send(msg!{
53        CHAN: ATTACH,
54        VALUE: "hello"
55    }).unwrap();
56
57    let ret = wire1.wait(Some(Duration::from_secs(1))).unwrap();
58    println!("wire 1 attach ret: {:?}", ret);
59
60    // wire 2 send
61    wire2.send(msg!{
62        ID: MessageId::new(),
63        CHAN: "hello",
64        "hello": "world"
65    }).unwrap();
66
67    // wire 1 recv
68    let ret = wire1.wait(Some(Duration::from_secs(1))).unwrap();
69    if let Some(err) = Code::get(&ret) {
70        if err != Code::Ok {
71            println!("wire 1 recv error: {:?}", err);
72            return
73        }
74    }
75
76    println!("wire 1 recv ret: {:?}", ret);
77}