equal
deleted
inserted
replaced
8 "cjyar/xmpp" |
8 "cjyar/xmpp" |
9 "flag" |
9 "flag" |
10 "fmt" |
10 "fmt" |
11 "log" |
11 "log" |
12 "os" |
12 "os" |
13 ) |
13 "time" |
|
14 ) |
14 |
15 |
15 // Demonstrate the API, and allow the user to interact with an XMPP |
16 // Demonstrate the API, and allow the user to interact with an XMPP |
16 // server via the terminal. |
17 // server via the terminal. |
17 func main() { |
18 func main() { |
18 var jid xmpp.JID |
19 var jid xmpp.JID |
26 |
27 |
27 c, err := xmpp.NewClient(&jid, *pw, nil) |
28 c, err := xmpp.NewClient(&jid, *pw, nil) |
28 if err != nil { |
29 if err != nil { |
29 log.Fatalf("NewClient(%v): %v", jid, err) |
30 log.Fatalf("NewClient(%v): %v", jid, err) |
30 } |
31 } |
31 defer c.Close() |
32 defer close(c.Out) |
32 |
33 |
33 err = c.StartSession(true, &xmpp.Presence{}) |
34 err = c.StartSession(true, &xmpp.Presence{}) |
34 if err != nil { |
35 if err != nil { |
35 log.Fatalf("StartSession: %v", err) |
36 log.Fatalf("StartSession: %v", err) |
36 } |
37 } |
45 fmt.Printf("s: %v\n", obj) |
46 fmt.Printf("s: %v\n", obj) |
46 } |
47 } |
47 fmt.Println("done reading") |
48 fmt.Println("done reading") |
48 }(c.In) |
49 }(c.In) |
49 |
50 |
50 p := make([]byte, 1024) |
51 time.Sleep(1e9 * 5) |
51 for { |
52 fmt.Println("Shutting down.") |
52 nr, _ := os.Stdin.Read(p) |
53 close(c.Out) |
53 if nr == 0 { |
54 time.Sleep(1e9 * 5) |
54 break |
55 select {} |
55 } |
|
56 s := string(p) |
|
57 stan, err := xmpp.ParseStanza(s) |
|
58 if err == nil { |
|
59 c.Out <- stan |
|
60 } else { |
|
61 fmt.Printf("Parse error: %v\n", err) |
|
62 break |
|
63 } |
|
64 } |
|
65 fmt.Println("done sending") |
|
66 } |
56 } |