0e5d52de
zhangqijia
reactor: 重构底层框架1.0
|
1
2
|
package components
|
c47aa250
zhangqijia
feat: 增加GM相关接口。详情...
|
3
4
|
import (
"github.com/gin-gonic/gin"
|
3e92be67
zhangqijia
fix: 优化协议,除了登录和创建...
|
5
|
"github.com/golang/protobuf/proto"
|
c47aa250
zhangqijia
feat: 增加GM相关接口。详情...
|
6
|
"google.golang.org/protobuf/reflect/protoreflect"
|
495e9142
zhangqijia
fix: 增加DisConnect...
|
7
|
"pro2d/pb"
|
c47aa250
zhangqijia
feat: 增加GM相关接口。详情...
|
8
9
|
"reflect"
)
|
4255fd8e
zhangqijia
feat: 更新字段
|
10
|
|
765431a4
zhangqijia
增加schema接口, 抽象 mo...
|
11
12
13
14
15
16
17
18
19
|
//-----------------
//----net start----
//-----------------
type (
//网络包头
IHead interface {
GetDataLen() uint32 //获取消息数据段长度
GetMsgID() uint32 //获取消息ID
GetErrCode() int32 //获取消息错误码
|
8568cf44
zhangqijia
update preserve
|
20
|
GetPreserve() uint32 //获取预留数据 客户端上传的session。echo回去。
|
765431a4
zhangqijia
增加schema接口, 抽象 mo...
|
21
22
23
|
}
//网络包
IMessage interface {
|
765431a4
zhangqijia
增加schema接口, 抽象 mo...
|
24
25
26
27
28
29
|
GetHeader() IHead //获取消息头
SetHeader(header IHead) //设置消息头
GetData() []byte //获取消息内容
SetData([]byte) //设置消息内容
|
eadc9aff
zhangqijia
feat: 增加上阵下阵协议,增加...
|
30
31
|
SetSID(id uint32) //设置连接
GetSID() uint32 //获取连接
|
765431a4
zhangqijia
增加schema接口, 抽象 mo...
|
32
33
34
35
36
37
38
39
|
}
//网络拆包解包器
ISplitter interface {
UnPack([]byte) (IMessage, error)
Pack(cmd uint32, data []byte, errcode int32, preserve uint32) ([]byte, error)
ParseMsg(data []byte, atEOF bool) (advance int, token []byte, err error)
GetHeadLen() uint32
}
|
b499527e
zhangqijia
feat: 消息包用aes加密
|
40
41
42
43
44
45
|
//加解密
IEncipher interface {
Encrypt([]byte) ([]byte, error)
Decrypt([]byte) ([]byte, error)
}
|
765431a4
zhangqijia
增加schema接口, 抽象 mo...
|
46
47
48
49
50
51
|
ConnectionCallback func(IConnection)
CloseCallback func(IConnection)
MessageCallback func(IMessage)
TimerCallback func(IConnection)
//链接
IConnection interface {
|
58e37bfe
zhangqijia
add sync.Pool to ...
|
52
|
GetID() uint32
|
765431a4
zhangqijia
增加schema接口, 抽象 mo...
|
53
54
|
Start()
Stop()
|
8568cf44
zhangqijia
update preserve
|
55
|
Send(errCode int32, cmd uint32, b []byte, preserve uint32) error
|
aa487faa
zhangqijia
null
|
56
|
SendPB(errCode int32, cmd pb.ProtoCode, b proto.Message, preserve uint32) error
|
8568cf44
zhangqijia
update preserve
|
57
|
SendSuccess(cmd uint32, b []byte, preserve uint32) error
|
8aaf28dd
zhangqijia
fix: 修复gm系统修改role...
|
58
|
CustomChan() chan<- func()
|
765431a4
zhangqijia
增加schema接口, 抽象 mo...
|
59
60
61
62
63
64
|
SetConnectionCallback(ConnectionCallback)
SetMessageCallback(MessageCallback)
SetCloseCallback(CloseCallback)
SetTimerCallback(TimerCallback)
}
|
cd2f96ab
zhangqijia
fix: 优化连接管理
|
65
66
|
//connManage
IConnManage interface {
|
58e37bfe
zhangqijia
add sync.Pool to ...
|
67
68
69
|
AddConn(id uint32, connection IConnection)
GetConn(id uint32) IConnection
DelConn(id uint32) IConnection
|
cd2f96ab
zhangqijia
fix: 优化连接管理
|
70
71
|
Range(f func(key interface{}, value interface{}) bool)
StopAllConns()
|
c47aa250
zhangqijia
feat: 增加GM相关接口。详情...
|
72
73
74
75
|
AddRID(rid string, id uint32)
DelRID(rid string)
GetConnByRID(rid string) IConnection
|
495e9142
zhangqijia
fix: 增加DisConnect...
|
76
77
78
79
|
AddUID(uid string, id uint32)
DelUID(uid string)
GetConnByUID(uid string) IConnection
|
cd2f96ab
zhangqijia
fix: 优化连接管理
|
80
|
}
|
765431a4
zhangqijia
增加schema接口, 抽象 mo...
|
81
82
83
84
85
86
|
//server
IServer interface {
Start() error
Stop()
GetSplitter() ISplitter
|
765431a4
zhangqijia
增加schema接口, 抽象 mo...
|
87
88
|
GetPlugin() IPlugin
GetAction(uint32) interface{}
|
69d286a7
zhangqijia
fix: 插件用来做部分热更
|
89
|
SetActions(map[interface{}]interface{})
|
cd2f96ab
zhangqijia
fix: 优化连接管理
|
90
|
GetConnManage() IConnManage
|
765431a4
zhangqijia
增加schema接口, 抽象 mo...
|
91
92
93
94
95
96
|
SetConnectionCallback(ConnectionCallback)
SetMessageCallback(MessageCallback)
SetCloseCallback(CloseCallback)
SetTimerCallback(TimerCallback)
}
|
eadc9aff
zhangqijia
feat: 增加上阵下阵协议,增加...
|
97
98
99
100
101
102
|
IAgent interface {
GetSchema() ISchema
SetSchema(schema ISchema)
GetServer() IServer
SetServer(server IServer)
|
3e92be67
zhangqijia
fix: 优化协议,除了登录和创建...
|
103
|
SendMsg(errCode int32, cmd uint32, msg proto.Message)
|
eadc9aff
zhangqijia
feat: 增加上阵下阵协议,增加...
|
104
|
}
|
765431a4
zhangqijia
增加schema接口, 抽象 mo...
|
105
|
|
54b3f133
zhangqijia
add connector int...
|
106
107
108
109
110
|
//Connector
IConnector interface {
Connect() error
DisConnect()
|
495e9142
zhangqijia
fix: 增加DisConnect...
|
111
|
GetConn() IConnection
|
8568cf44
zhangqijia
update preserve
|
112
113
|
Send(cmd uint32, b []byte, preserve uint32) error
SendPB(cmd pb.ProtoCode, b proto.Message, preserve uint32) error
|
54b3f133
zhangqijia
add connector int...
|
114
115
|
}
|
765431a4
zhangqijia
增加schema接口, 抽象 mo...
|
116
117
118
119
|
//httpserver
IHttp interface {
Start() error
Stop()
|
c47aa250
zhangqijia
feat: 增加GM相关接口。详情...
|
120
|
SetHandlerFuncCallback(func(tvl, obj reflect.Value) gin.HandlerFunc)
|
765431a4
zhangqijia
增加schema接口, 抽象 mo...
|
121
122
|
BindHandler(interface{})
}
|
69d286a7
zhangqijia
fix: 插件用来做部分热更
|
123
|
ActionHandler func(msg IMessage) (int32, interface{})
|
765431a4
zhangqijia
增加schema接口, 抽象 mo...
|
124
125
126
127
128
129
|
//用于热更逻辑的插件接口
IPlugin interface {
LoadPlugin() error
SetActions(map[interface{}]interface{})
GetAction(uint32) interface{}
}
|
765431a4
zhangqijia
增加schema接口, 抽象 mo...
|
130
131
132
133
134
135
136
137
138
139
|
)
//-----------------
//-----db start----
//-----------------
type (
IDB interface {
CreateTable() error
Create() (interface{}, error)
|
8d983031
zhangqijia
loginReq uid -> t...
|
140
|
Save() error
|
765431a4
zhangqijia
增加schema接口, 抽象 mo...
|
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
|
Load() error
FindOne() error
UpdateProperty(key string, val interface{}) error
UpdateProperties(properties map[string]interface{}) error
SetUnique(key string) (string, error)
}
ISchema interface {
Init()
GetDB() IDB
GetPri() interface{}
GetSchema() interface{}
GetSchemaName() string
|
eadc9aff
zhangqijia
feat: 增加上阵下阵协议,增加...
|
156
|
UpdateSchema(interface{})
|
f631f225
zhangqijia
feat: 增加背包系统,以及背包...
|
157
158
|
SetConn(conn IConnection)
GetConn() IConnection
|
765431a4
zhangqijia
增加schema接口, 抽象 mo...
|
159
160
161
|
Load() error
Create() error
|
765431a4
zhangqijia
增加schema接口, 抽象 mo...
|
162
163
164
|
Update()
SetProperty(key string, val interface{})
|
fc3e08ac
zhangqijia
feat: add log com...
|
165
|
GetProperty(key string) interface{}
|
765431a4
zhangqijia
增加schema接口, 抽象 mo...
|
166
|
SetProperties(properties map[string]interface{})
|
c8509ef6
zhangqijia
fix: notify equip...
|
167
|
IncrProperty(key string, val int64) int64
|
b499527e
zhangqijia
feat: 消息包用aes加密
|
168
|
ParseFields(message protoreflect.Message, properties map[string]interface{}) []int32
|
765431a4
zhangqijia
增加schema接口, 抽象 mo...
|
169
170
171
172
173
174
|
}
)
//-----------------
//-----db end------
//-----------------
|