Blame view

cmd/httpserver/http.go 1.56 KB
9644352a   zhangqijia   登录服改为http,游戏服改为长连...
1
2
3
  package main
  
  import (
0e5d52de   zhangqijia   reactor: 重构底层框架1.0
4
  	"fmt"
9644352a   zhangqijia   登录服改为http,游戏服改为长连...
5
6
  	"os"
  	"os/signal"
765431a4   zhangqijia   增加schema接口, 抽象 mo...
7
  	"pro2d/common"
0e5d52de   zhangqijia   reactor: 重构底层框架1.0
8
  	"pro2d/common/components"
436e0af4   zhangqijia   reactor: dir; Ac...
9
  	"pro2d/common/db/mongoproxy"
765431a4   zhangqijia   增加schema接口, 抽象 mo...
10
11
  	"pro2d/common/etcd"
  	"pro2d/common/logger"
8d983031   zhangqijia   loginReq uid -> t...
12
  	"pro2d/models"
9644352a   zhangqijia   登录服改为http,游戏服改为长连...
13
14
15
  	"syscall"
  )
  
0e5d52de   zhangqijia   reactor: 重构底层框架1.0
16
17
18
19
20
21
22
23
24
  type AccountServer struct {
  	components.IHttp
  	EtcdClient *etcd.EtcdClient
  }
  
  func NewAccountServer(version string, port ...string) *AccountServer {
  	return &AccountServer{IHttp: components.NewHttpServer(version, port...)}
  }
  
b3d79719   zhangqijia   fix: 返回值如果code=0则...
25
  func (s *AccountServer) Init() error {
765431a4   zhangqijia   增加schema接口, 抽象 mo...
26
  	//mgo init
436e0af4   zhangqijia   reactor: dir; Ac...
27
  	err := mongoproxy.ConnectMongo(common.GlobalConf.AccountConf.MongoConf)
0e5d52de   zhangqijia   reactor: 重构底层框架1.0
28
29
  
  	//Etcd 初始化
765431a4   zhangqijia   增加schema接口, 抽象 mo...
30
  	s.EtcdClient, err = etcd.NewEtcdClient(common.GlobalConf.Etcd)
0e5d52de   zhangqijia   reactor: 重构底层框架1.0
31
32
33
  	if err != nil {
  		return err
  	}
8d983031   zhangqijia   loginReq uid -> t...
34
  	models.InitGameModels()
765431a4   zhangqijia   增加schema接口, 抽象 mo...
35
36
37
38
39
40
41
  
  	//Etcd 初始化
  	s.EtcdClient, err = etcd.NewEtcdClient(common.GlobalConf.Etcd)
  	if err != nil {
  		return err
  	}
  	s.EtcdClient.PutWithLeasePrefix(common.GlobalConf.AccountConf.Name, common.GlobalConf.AccountConf.ID, fmt.Sprintf("%s:%d", common.GlobalConf.AccountConf.IP, common.GlobalConf.AccountConf.Port), 5)
77f5eec7   zhangqijia   plugin 插件热更 接口
42
43
44
  	return nil
  }
  
b3d79719   zhangqijia   fix: 返回值如果code=0则...
45
  func (s *AccountServer) Start() error {
77f5eec7   zhangqijia   plugin 插件热更 接口
46
47
48
  	if err := s.Init(); err != nil {
  		return err
  	}
9a9d092e   zhangqijia   每条连接增加一个定时器,每条连接增...
49
50
  
  	return s.IHttp.Start()
0e5d52de   zhangqijia   reactor: 重构底层框架1.0
51
52
  }
  
9644352a   zhangqijia   登录服改为http,游戏服改为长连...
53
54
55
56
57
  func main() {
  	err := make(chan error)
  	stopChan := make(chan os.Signal)
  	signal.Notify(stopChan, syscall.SIGTERM, syscall.SIGINT, syscall.SIGKILL)
  
765431a4   zhangqijia   增加schema接口, 抽象 mo...
58
  	web := NewAccountServer("v1", fmt.Sprintf(":%d", common.GlobalConf.AccountConf.Port))
0e5d52de   zhangqijia   reactor: 重构底层框架1.0
59
  	web.BindHandler(&AccountAction{HttpServer: web})
9644352a   zhangqijia   登录服改为http,游戏服改为长连...
60
61
62
63
64
  	go func() {
  		err <- web.Start()
  	}()
  
  	select {
b3d79719   zhangqijia   fix: 返回值如果code=0则...
65
66
  	case e := <-err:
  		logger.Error("http server error: %v", e)
9644352a   zhangqijia   登录服改为http,游戏服改为长连...
67
  	case <-stopChan:
b3d79719   zhangqijia   fix: 返回值如果code=0则...
68
  		logger.Debug("http stop")
0e5d52de   zhangqijia   reactor: 重构底层框架1.0
69
  		web.Stop()
9644352a   zhangqijia   登录服改为http,游戏服改为长连...
70
  	}
b3d79719   zhangqijia   fix: 返回值如果code=0则...
71
  }