54 lines
1.6 KiB
Markdown
54 lines
1.6 KiB
Markdown
## go-tcpFramework-rudy
|
||
#### 介绍
|
||
基于golang的tcp长连接框架--rudy。
|
||
|
||
#### 软件架构
|
||
功能:
|
||
提供连接数管理,支持熔断,热重启
|
||
提供路由管理,支持context化timeout和cancel
|
||
支持分布式,和主节点选举
|
||
支持apolo配置
|
||
心跳包支持
|
||
服务端推送支持
|
||
#### How to use
|
||
```go
|
||
package main
|
||
|
||
import (
|
||
"flag"
|
||
"go-tcpFramework-rudy/config"
|
||
"go-tcpFramework-rudy/logger"
|
||
"go-tcpFramework-rudy/network"
|
||
"log"
|
||
)
|
||
|
||
func main() {
|
||
var confPath string
|
||
flag.StringVar(&confPath,"conf_path","TcpServConfig.json","the path of configuration file")
|
||
flag.Parse()
|
||
config.InitConfig(confPath)
|
||
|
||
//network.SetHandler(handler.HandlePack)
|
||
server := network.ServerFactory(config.Configs().Ipadress)
|
||
server.SetHandler(nil)
|
||
log.Print("start " + config.Configs().Type + " server " + "at address " + config.Configs().Ipadress)
|
||
e := server.Run()
|
||
if nil != e {
|
||
logger.LogDebugError(e.Error())
|
||
}
|
||
}
|
||
```
|
||
server 服务实例
|
||
server.SetHandler 设置处理句柄
|
||
server.Run() 服务启动
|
||
### 包头格式文档(Package format)
|
||
```text
|
||
0 1 2 3
|
||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
|
||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||
| 0x40 | 0x41 | length[3] | length[2]
|
||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||
| length[1] | length[0] | verify |
|
||
|
||
```
|
||
包头格式7个字节,首个字节标识符40 41 ,然后包长度,最后是verify是包头长度的校验和 |