Blame view

cmd/httpserver/http.go 1.9 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"
15864203   zhangqijia   feat: 增加短信接口
10
  	"pro2d/common/db/redisproxy"
765431a4   zhangqijia   增加schema接口, 抽象 mo...
11
12
  	"pro2d/common/etcd"
  	"pro2d/common/logger"
8d983031   zhangqijia   loginReq uid -> t...
13
  	"pro2d/models"
9644352a   zhangqijia   登录服改为http,游戏服改为长连...
14
  	"syscall"
101d1cc1   zhangqijia   feat: 一个基于redis的自...
15
  	"time"
9644352a   zhangqijia   登录服改为http,游戏服改为长连...
16
17
  )
  
0e5d52de   zhangqijia   reactor: 重构底层框架1.0
18
19
20
  type AccountServer struct {
  	components.IHttp
  	EtcdClient *etcd.EtcdClient
101d1cc1   zhangqijia   feat: 一个基于redis的自...
21
  	Sconf      *common.SConf
0e5d52de   zhangqijia   reactor: 重构底层框架1.0
22
23
24
25
26
27
  }
  
  func NewAccountServer(version string, port ...string) *AccountServer {
  	return &AccountServer{IHttp: components.NewHttpServer(version, port...)}
  }
  
15864203   zhangqijia   feat: 增加短信接口
28
  func (s *AccountServer) Init(sconf *common.SConf) error {
101d1cc1   zhangqijia   feat: 一个基于redis的自...
29
30
  	s.Sconf = sconf
  
765431a4   zhangqijia   增加schema接口, 抽象 mo...
31
  	//mgo init
15864203   zhangqijia   feat: 增加短信接口
32
  	err := mongoproxy.ConnectMongo(sconf.MongoConf)
0e5d52de   zhangqijia   reactor: 重构底层框架1.0
33
  
15864203   zhangqijia   feat: 增加短信接口
34
35
  	//redis init
  	if err = redisproxy.ConnectRedis(sconf.RedisConf.DB, sconf.RedisConf.Auth, sconf.RedisConf.Address); err != nil {
0e5d52de   zhangqijia   reactor: 重构底层框架1.0
36
37
  		return err
  	}
765431a4   zhangqijia   增加schema接口, 抽象 mo...
38
39
40
41
42
43
  
  	//Etcd 初始化
  	s.EtcdClient, err = etcd.NewEtcdClient(common.GlobalConf.Etcd)
  	if err != nil {
  		return err
  	}
101d1cc1   zhangqijia   feat: 一个基于redis的自...
44
45
  	models.NewDBSeed(sconf.ID).InitServerDatabase(models.AccountModels())
  	models.DBSeedS().InitAutoIncreUidTable(models.AccountModels())
15864203   zhangqijia   feat: 增加短信接口
46
  
101d1cc1   zhangqijia   feat: 一个基于redis的自...
47
  	s.EtcdClient.PutWithLeasePrefix(sconf.Name, fmt.Sprintf("%d", sconf.ID), fmt.Sprintf("%s:%d", sconf.IP, sconf.Port), 5)
77f5eec7   zhangqijia   plugin 插件热更 接口
48
49
50
  	return nil
  }
  
101d1cc1   zhangqijia   feat: 一个基于redis的自...
51
52
53
54
55
56
  func (s *AccountServer) TimeOut() {
  	models.DBSeedS().SaveAutoincrementTimer(models.AccountModels())
  
  	components.TimeOut(1*time.Second, s.TimeOut)
  }
  
b3d79719   zhangqijia   fix: 返回值如果code=0则...
57
  func (s *AccountServer) Start() error {
15864203   zhangqijia   feat: 增加短信接口
58
  	if err := s.Init(common.GlobalConf.AccountConf); err != nil {
77f5eec7   zhangqijia   plugin 插件热更 接口
59
60
  		return err
  	}
9a9d092e   zhangqijia   每条连接增加一个定时器,每条连接增...
61
  
101d1cc1   zhangqijia   feat: 一个基于redis的自...
62
63
64
  	//开始定时器
  	s.TimeOut()
  
9a9d092e   zhangqijia   每条连接增加一个定时器,每条连接增...
65
  	return s.IHttp.Start()
0e5d52de   zhangqijia   reactor: 重构底层框架1.0
66
67
  }
  
9644352a   zhangqijia   登录服改为http,游戏服改为长连...
68
69
70
71
72
  func main() {
  	err := make(chan error)
  	stopChan := make(chan os.Signal)
  	signal.Notify(stopChan, syscall.SIGTERM, syscall.SIGINT, syscall.SIGKILL)
  
765431a4   zhangqijia   增加schema接口, 抽象 mo...
73
  	web := NewAccountServer("v1", fmt.Sprintf(":%d", common.GlobalConf.AccountConf.Port))
0e5d52de   zhangqijia   reactor: 重构底层框架1.0
74
  	web.BindHandler(&AccountAction{HttpServer: web})
9644352a   zhangqijia   登录服改为http,游戏服改为长连...
75
76
77
78
79
  	go func() {
  		err <- web.Start()
  	}()
  
  	select {
b3d79719   zhangqijia   fix: 返回值如果code=0则...
80
81
  	case e := <-err:
  		logger.Error("http server error: %v", e)
9644352a   zhangqijia   登录服改为http,游戏服改为长连...
82
  	case <-stopChan:
b3d79719   zhangqijia   fix: 返回值如果code=0则...
83
  		logger.Debug("http stop")
0e5d52de   zhangqijia   reactor: 重构底层框架1.0
84
  		web.Stop()
9644352a   zhangqijia   登录服改为http,游戏服改为长连...
85
  	}
b3d79719   zhangqijia   fix: 返回值如果code=0则...
86
  }