0e5d52de
zhangqijia
reactor: 重构底层框架1.0
|
1
2
|
package components
|
4255fd8e
zhangqijia
feat: 更新字段
|
3
4
|
import "google.golang.org/protobuf/reflect/protoreflect"
|
765431a4
zhangqijia
增加schema接口, 抽象 mo...
|
5
6
7
8
9
10
11
12
13
14
15
16
17
|
//-----------------
//----net start----
//-----------------
type (
//网络包头
IHead interface {
GetDataLen() uint32 //获取消息数据段长度
GetMsgID() uint32 //获取消息ID
GetErrCode() int32 //获取消息错误码
GetPreserve() uint32 //获取预留数据
}
//网络包
IMessage interface {
|
765431a4
zhangqijia
增加schema接口, 抽象 mo...
|
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
GetHeader() IHead //获取消息头
SetHeader(header IHead) //设置消息头
GetData() []byte //获取消息内容
SetData([]byte) //设置消息内容
SetSession(IConnection) //设置连接
GetSession() IConnection //获取连接
}
//网络拆包解包器
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加密
|
34
35
36
37
38
39
|
//加解密
IEncipher interface {
Encrypt([]byte) ([]byte, error)
Decrypt([]byte) ([]byte, error)
}
|
765431a4
zhangqijia
增加schema接口, 抽象 mo...
|
40
41
42
43
44
45
|
ConnectionCallback func(IConnection)
CloseCallback func(IConnection)
MessageCallback func(IMessage)
TimerCallback func(IConnection)
//链接
IConnection interface {
|
58e37bfe
zhangqijia
add sync.Pool to ...
|
46
|
GetID() uint32
|
765431a4
zhangqijia
增加schema接口, 抽象 mo...
|
47
48
|
Start()
Stop()
|
4255fd8e
zhangqijia
feat: 更新字段
|
49
|
Send(errCode int32, cmd uint32, b []byte) error
|
765431a4
zhangqijia
增加schema接口, 抽象 mo...
|
50
51
52
53
54
55
|
SetConnectionCallback(ConnectionCallback)
SetMessageCallback(MessageCallback)
SetCloseCallback(CloseCallback)
SetTimerCallback(TimerCallback)
}
|
cd2f96ab
zhangqijia
fix: 优化连接管理
|
56
57
|
//connManage
IConnManage interface {
|
58e37bfe
zhangqijia
add sync.Pool to ...
|
58
59
60
|
AddConn(id uint32, connection IConnection)
GetConn(id uint32) IConnection
DelConn(id uint32) IConnection
|
cd2f96ab
zhangqijia
fix: 优化连接管理
|
61
62
63
|
Range(f func(key interface{}, value interface{}) bool)
StopAllConns()
}
|
765431a4
zhangqijia
增加schema接口, 抽象 mo...
|
64
65
66
67
68
69
|
//server
IServer interface {
Start() error
Stop()
GetSplitter() ISplitter
|
765431a4
zhangqijia
增加schema接口, 抽象 mo...
|
70
71
|
GetPlugin() IPlugin
GetAction(uint32) interface{}
|
69d286a7
zhangqijia
fix: 插件用来做部分热更
|
72
|
SetActions(map[interface{}]interface{})
|
cd2f96ab
zhangqijia
fix: 优化连接管理
|
73
|
GetConnManage() IConnManage
|
765431a4
zhangqijia
增加schema接口, 抽象 mo...
|
74
75
76
77
78
79
80
|
SetConnectionCallback(ConnectionCallback)
SetMessageCallback(MessageCallback)
SetCloseCallback(CloseCallback)
SetTimerCallback(TimerCallback)
}
|
54b3f133
zhangqijia
add connector int...
|
81
82
83
84
85
86
87
88
|
//Connector
IConnector interface {
Connect() error
DisConnect()
Send(cmd uint32, b []byte)
}
|
765431a4
zhangqijia
增加schema接口, 抽象 mo...
|
89
90
91
92
93
94
|
//httpserver
IHttp interface {
Start() error
Stop()
BindHandler(interface{})
}
|
69d286a7
zhangqijia
fix: 插件用来做部分热更
|
95
|
ActionHandler func(msg IMessage) (int32, interface{})
|
765431a4
zhangqijia
增加schema接口, 抽象 mo...
|
96
97
98
99
100
101
|
//用于热更逻辑的插件接口
IPlugin interface {
LoadPlugin() error
SetActions(map[interface{}]interface{})
GetAction(uint32) interface{}
}
|
765431a4
zhangqijia
增加schema接口, 抽象 mo...
|
102
103
104
105
106
107
108
109
110
111
|
)
//-----------------
//-----db start----
//-----------------
type (
IDB interface {
CreateTable() error
Create() (interface{}, error)
|
8d983031
zhangqijia
loginReq uid -> t...
|
112
|
Save() error
|
765431a4
zhangqijia
增加schema接口, 抽象 mo...
|
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
|
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
Load() error
Create() error
|
4255fd8e
zhangqijia
feat: 更新字段
|
131
|
Save() error
|
765431a4
zhangqijia
增加schema接口, 抽象 mo...
|
132
133
134
135
|
Update()
SetProperty(key string, val interface{})
SetProperties(properties map[string]interface{})
|
b499527e
zhangqijia
feat: 消息包用aes加密
|
136
|
ParseFields(message protoreflect.Message, properties map[string]interface{}) []int32
|
765431a4
zhangqijia
增加schema接口, 抽象 mo...
|
137
138
139
140
141
142
|
}
)
//-----------------
//-----db end------
//-----------------
|