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  }