github.com/simpleiot/simpleiot@v0.18.3/cmd/edge/main.go (about) 1 // Example SIOT client application 2 package main 3 4 import ( 5 "flag" 6 "log" 7 "os" 8 9 "github.com/simpleiot/simpleiot/client" 10 ) 11 12 func main() { 13 flagNatsServer := flag.String("natsServer", "nats://127.0.0.1:4222", "NATS Server") 14 flagID := flag.String("id", "1234", "ID of edge device") 15 flagNatsAuth := flag.String("natsAuth", "", "NATS auth token") 16 17 flag.Parse() 18 19 log.Printf("SIOT Edge, ID: %v, server: %v\n", *flagID, *flagNatsServer) 20 21 opts := client.EdgeOptions{ 22 URI: *flagNatsServer, 23 AuthToken: *flagNatsAuth, 24 Disconnected: func() { 25 log.Println("NATS Disconnected") 26 }, 27 Reconnected: func() { 28 log.Println("NATS Reconnected") 29 }, 30 Closed: func() { 31 log.Println("NATS Closed") 32 os.Exit(0) 33 }, 34 } 35 36 nc, err := client.EdgeConnect(opts) 37 38 if err != nil { 39 log.Println("Error connecting to NATS server:", err) 40 os.Exit(-1) 41 } 42 43 _ = client.ListenForFile(nc, "./", *flagID, func(name string) { 44 log.Println("File downloaded:", name) 45 }) 46 47 select {} 48 }