2023-09-19 18:38:56 +09:00
|
|
|
// warroom project main.go
|
2023-05-24 16:10:00 +09:00
|
|
|
package main
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"context"
|
|
|
|
|
"net/http"
|
|
|
|
|
|
2023-06-21 14:38:26 +09:00
|
|
|
"repositories.action2quare.com/ayo/gocommon/flagx"
|
2023-05-24 16:10:00 +09:00
|
|
|
"repositories.action2quare.com/ayo/gocommon/wshandler"
|
2023-09-19 18:38:56 +09:00
|
|
|
"repositories.action2quare.com/ayo/tavern/core"
|
2023-05-24 16:10:00 +09:00
|
|
|
|
2023-08-31 21:02:19 +09:00
|
|
|
"repositories.action2quare.com/ayo/gocommon"
|
2023-05-24 16:10:00 +09:00
|
|
|
"repositories.action2quare.com/ayo/gocommon/logger"
|
2023-08-31 21:02:19 +09:00
|
|
|
"repositories.action2quare.com/ayo/gocommon/session"
|
2023-05-24 16:10:00 +09:00
|
|
|
)
|
|
|
|
|
|
2023-06-21 14:38:26 +09:00
|
|
|
var prefix = flagx.String("prefix", "", "")
|
|
|
|
|
|
2023-05-24 16:10:00 +09:00
|
|
|
func main() {
|
2023-06-21 16:21:19 +09:00
|
|
|
flagx.Parse()
|
|
|
|
|
|
2023-05-24 16:10:00 +09:00
|
|
|
ctx, cancel := context.WithCancel(context.Background())
|
2023-09-19 18:38:56 +09:00
|
|
|
var config core.TavernConfig
|
2023-08-31 21:02:19 +09:00
|
|
|
if err := gocommon.LoadConfig(&config); err != nil {
|
2023-05-24 16:10:00 +09:00
|
|
|
panic(err)
|
|
|
|
|
}
|
|
|
|
|
|
2023-08-31 21:17:51 +09:00
|
|
|
consumer, err := session.NewConsumerWithConfig(ctx, config.SessionConfig)
|
2023-08-31 21:02:19 +09:00
|
|
|
if err != nil {
|
|
|
|
|
panic(err)
|
|
|
|
|
}
|
|
|
|
|
|
2023-09-08 11:37:50 +09:00
|
|
|
wsh, err := wshandler.NewWebsocketHandler(consumer, config.RedisURL)
|
2023-05-24 16:10:00 +09:00
|
|
|
if err != nil {
|
|
|
|
|
panic(err)
|
|
|
|
|
}
|
|
|
|
|
|
2023-09-19 18:38:56 +09:00
|
|
|
if tv, err := core.New(ctx, wsh); err != nil {
|
2023-05-24 16:10:00 +09:00
|
|
|
panic(err)
|
|
|
|
|
} else {
|
|
|
|
|
serveMux := http.NewServeMux()
|
2023-07-10 15:39:56 +09:00
|
|
|
wsh.RegisterHandlers(serveMux, *prefix)
|
2023-11-28 22:34:18 +09:00
|
|
|
defer wsh.Cleanup()
|
|
|
|
|
|
2023-09-19 18:38:56 +09:00
|
|
|
tv.RegisterHandlers(ctx, serveMux, *prefix)
|
2023-11-28 22:34:18 +09:00
|
|
|
defer tv.Cleanup()
|
|
|
|
|
|
2023-08-31 21:02:19 +09:00
|
|
|
server := gocommon.NewHTTPServer(serveMux)
|
2023-09-19 18:38:56 +09:00
|
|
|
logger.Println("tavern is started")
|
2023-07-10 15:39:56 +09:00
|
|
|
wsh.Start(ctx)
|
2023-11-28 22:34:18 +09:00
|
|
|
|
|
|
|
|
if err := server.Start(); err != nil {
|
|
|
|
|
logger.Println(err)
|
|
|
|
|
}
|
2023-11-29 13:07:51 +09:00
|
|
|
cancel()
|
2023-05-24 16:10:00 +09:00
|
|
|
}
|
|
|
|
|
}
|