Go to file
caiyuzheng 1d463d5988 no message 2020-08-26 20:53:01 +08:00
.vscode 添加安全tcp的实现 2020-08-19 20:37:47 +08:00
config 添加安全tcp的实现 2020-08-19 20:37:47 +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 no message 2020-08-24 02:07:50 +08:00
protocol 规范化单元测试的代码 2020-04-07 16:10:32 +08:00
test no message 2020-08-20 01:09:18 +08:00
tools/mq no message 2020-08-20 01:09:18 +08:00
util mq添加redis实现 2020-04-07 09:13:27 +08:00
vendor 启动脚本再merge 2019-04-09 14:19:12 +08:00
zk no message 2020-08-20 01:09:18 +08:00
.gitignore 添加git忽略文件 2019-04-11 09:42:57 +08:00
Dockerfile 删除了一些无关的业务代码 2019-03-22 16:30:06 +08:00
README.md no message 2020-08-26 20:53:01 +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 no message 2020-08-20 01:09:18 +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 是包头长度的校验和

secure tcp

secure tcp 提供了类似于 tls,ssl 的机制的安全 tcp 连接,流程如下

image.png


服务端下发公钥的报文