game_sync/dbproxy/main.go

55 lines
1.4 KiB
Go

package main
import (
"log"
"net"
"net/http"
"net/rpc"
"mongo.games.com/goserver/core"
"mongo.games.com/goserver/core/etcd"
"mongo.games.com/goserver/core/module"
_ "mongo.games.com/game"
"mongo.games.com/game/common"
_ "mongo.games.com/game/dbproxy/mq"
"mongo.games.com/game/dbproxy/svc"
"mongo.games.com/game/model"
"mongo.games.com/game/mq"
_ "mongo.games.com/game/srvdata"
)
func main() {
// 自定义配置文件
model.InitGameParam()
// package模块
defer core.ClosePackages()
core.LoadPackages("config.json")
// core hook
core.RegisteHook(core.HOOK_BEFORE_START, func() error {
etcd.Start()
mq.StartConsumer(common.CustomConfig.GetString("RabbitMQURL"), common.CustomConfig.GetString("RMQExchange"), true)
mq.StartPublisher(common.CustomConfig.GetString("RabbitMQURL"), common.CustomConfig.GetString("RMQExchange"), true, common.CustomConfig.GetInt("RMQPublishBacklog"))
// 尝试初始化玩家id
svc.GetOnePlayerIdFromBucket()
// rpc 服务
rpc.HandleHTTP() // 采用http协议作为rpc载体
lis, err := net.Listen(common.CustomConfig.GetString("MgoRpcCliNet"), common.CustomConfig.GetString("MgoRpcCliAddr"))
if err != nil {
log.Fatalln("rpc start fatal error: ", err)
}
go http.Serve(lis, nil)
// grpc 服务
//go db.RunGrpcServer()
return nil
})
core.RegisteHook(core.HOOK_AFTER_STOP, func() error {
return nil
})
// module模块
w := module.Start()
w.Wait("main()")
}