104 lines
2.0 KiB
Go
104 lines
2.0 KiB
Go
package main
|
|
|
|
import (
|
|
"log"
|
|
"os"
|
|
"os/signal"
|
|
"syscall"
|
|
"testmqtt/config"
|
|
"testmqtt/mqtt"
|
|
)
|
|
|
|
func main() {
|
|
|
|
sigs := make(chan os.Signal, 1)
|
|
done := make(chan bool, 1)
|
|
signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM)
|
|
go func() {
|
|
<-sigs
|
|
done <- true
|
|
}()
|
|
|
|
configBytes, err := os.ReadFile("config.yaml")
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
options, err := config.FromBytes(configBytes)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
server := mqtt.New(options)
|
|
|
|
go func() {
|
|
err := server.Serve()
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
}()
|
|
|
|
<-done
|
|
server.Log.Warn("caught signal, stopping...")
|
|
_ = server.Close()
|
|
server.Log.Info("main.go finished")
|
|
|
|
//tcpAddr := flag.String("tcp", ":1883", "network address for TCP listener")
|
|
//wsAddr := flag.String("ws", ":1882", "network address for Websocket listener")
|
|
//infoAddr := flag.String("info", ":8080", "network address for web info dashboard listener")
|
|
//flag.Parse()
|
|
//
|
|
//sigs := make(chan os.Signal, 1)
|
|
//done := make(chan bool, 1)
|
|
//signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM)
|
|
//go func() {
|
|
// <-sigs
|
|
// done <- true
|
|
//}()
|
|
//
|
|
//server := mqtt.New(nil)
|
|
//_ = server.AddHook(new(auth.AllowHook), nil)
|
|
//
|
|
//tcp := listeners.NewTCP(listeners.Config{
|
|
// ID: "t1",
|
|
// Address: *tcpAddr,
|
|
//})
|
|
//err := server.AddListener(tcp)
|
|
//if err != nil {
|
|
// log.Fatal(err)
|
|
//}
|
|
//
|
|
//ws := listeners.NewWebsocket(listeners.Config{
|
|
// ID: "ws1",
|
|
// Address: *wsAddr,
|
|
//})
|
|
//err = server.AddListener(ws)
|
|
//if err != nil {
|
|
// log.Fatal(err)
|
|
//}
|
|
//
|
|
//stats := listeners.NewHTTPStats(
|
|
// listeners.Config{
|
|
// ID: "info",
|
|
// Address: *infoAddr,
|
|
// },
|
|
// server.Info,
|
|
//)
|
|
//err = server.AddListener(stats)
|
|
//if err != nil {
|
|
// log.Fatal(err)
|
|
//}
|
|
//
|
|
//go func() {
|
|
// err := server.Serve()
|
|
// if err != nil {
|
|
// log.Fatal(err)
|
|
// }
|
|
//}()
|
|
//
|
|
//<-done
|
|
//server.Log.Warn("caught signal, stopping...")
|
|
//_ = server.Close()
|
|
//server.Log.Info("mochi mqtt shutdown complete")
|
|
}
|