Go to file
a7458969 049064483f mq工具添加mqtt的支持 2020-04-07 18:24:54 +08:00
config 修复了bug 2019-03-18 16:35:46 +08:00
handler 新增热重启支持。 2019-03-13 09:20:09 +08:00
logger 热重启代码更新 2019-03-14 09:11:28 +08:00
model 编码修改 2019-02-28 18:01:09 +08:00
network 添加mq 2020-04-07 00:08:49 +08:00
protocol 规范化单元测试的代码 2020-04-07 16:10:32 +08:00
test mq工具添加mqtt的支持 2020-04-07 18:24:54 +08:00
tools/mq mq工具添加mqtt的支持 2020-04-07 18:24:54 +08:00
util mq添加redis实现 2020-04-07 09:13:27 +08:00
vendor 启动脚本再merge 2019-04-09 14:19:12 +08:00
zk 新增热重启支持。 2019-03-13 09:20:09 +08:00
.gitignore 添加git忽略文件 2019-04-11 09:42:57 +08:00
Dockerfile 删除了一些无关的业务代码 2019-03-22 16:30:06 +08:00
README.md 文档添加包头格式 2019-04-23 11:32:57 +08:00
TcpServConfig.json 添加mq 2020-04-07 00:08:49 +08:00
deploy.bat 启动脚本再merge 2019-04-09 14:19:12 +08:00
go.mod 启动脚本再merge 2019-04-09 14:19:12 +08:00
go.sum 启动脚本再merge 2019-04-09 14:19:12 +08:00
k8s.deploy.yaml 添加mq 2020-04-07 00:08:49 +08:00
main.go 修复粘包不完整的bug 2019-04-10 11:17:55 +08:00
restart.sh 添加deploy脚本 2019-03-14 18:02:58 +08:00

README.md

go-tcpFramework-rudy

介绍

基于golang的tcp长连接框架--rudy。

软件架构

功能:
提供连接数管理,支持熔断,热重启
提供路由管理,支持context化timeout和cancel
支持分布式,和主节点选举
支持apolo配置
心跳包支持
服务端推送支持

How to use

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)

  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是包头长度的校验和