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
|
}
}
|