Blame view

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