2024-01-26 22:59:42 +08:00

47 lines
1.2 KiB
Go

package main
import (
"log"
"net"
"time"
signal_server "git.jeffthecoder.xyz/public/chat-signaling-server/pkg/impl/signal-server"
proto "git.jeffthecoder.xyz/public/chat-signaling-server/pkg/proto/signaling"
"github.com/spf13/cobra"
"google.golang.org/grpc"
)
var (
serverAddr string
signalSvrOpt signal_server.Options
cmd = &cobra.Command{
Run: func(cmd *cobra.Command, args []string) {
impl, err := signal_server.New(signalSvrOpt)
if err != nil {
panic(err)
}
listener, err := net.Listen("tcp4", serverAddr)
if err != nil {
panic(err)
}
grpcServer := grpc.NewServer()
proto.RegisterSignalingServer(grpcServer, impl)
log.Println("listening on", serverAddr)
if err := grpcServer.Serve(listener); err != nil {
panic(err)
}
},
}
)
func main() {
cmd.Flags().StringVar(&serverAddr, "listen", "0.0.0.0:4444", "")
cmd.Flags().StringSliceVar(&signalSvrOpt.RedisServers, "redis-server", []string{"127.0.0.1:6379"}, "")
cmd.Flags().IntVar(&signalSvrOpt.RedisDatabase, "redis-db", 0, "")
cmd.Flags().StringVar(&signalSvrOpt.RedisKeyPrefix, "redis-key-prefix", "signaling", "")
cmd.Flags().Int64Var(&signalSvrOpt.NameRandomSeed, "random-seed", time.Now().Unix(), "")
cmd.Execute()
}