123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- package main
- import (
- "log"
- "net"
- "strings"
- gamelangBingopb "git.alfi.li/gamelang/protobuf/gamelang-bingo"
- bm "git.alfi.li/gamelang/systems/bingomanager"
- "google.golang.org/grpc"
- gcfg "gopkg.in/gcfg.v1"
- )
- type Config struct {
- Grpc struct {
- Listen string // ip:port
- }
- Kafka struct {
- Enabled bool
- Broker string
- }
- }
- func main() {
- var config Config
- err := gcfg.ReadFileInto(&config, "config")
- if err != nil {
- log.Fatal(err)
- }
- log.Print("config read")
- log.Printf("%+v", config)
- // init bingomanager
- brokers := []string{}
- if config.Kafka.Enabled {
- brokers = strings.Split(config.Kafka.Broker, ",")
- }
- bingomanager := bm.NewBingoManager(brokers)
- log.Print("bingomanager initialized")
- // init GrpcServer
- lis, err := net.Listen("tcp", config.Grpc.Listen)
- if err != nil {
- log.Fatalf("failed to listen: %v", err)
- }
- grpcServer := grpc.NewServer()
- gamelangBingopb.RegisterBingoServiceServer(grpcServer, bm.NewBingoServer(bingomanager))
- grpcServer.Serve(lis)
- }
|