Go to file
caiyuzheng 368e49ff71 no message 2020-12-04 22:06:28 +08:00
.vscode 文档更新 2020-08-27 16:49:38 +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 修改文档 2020-08-26 22:52:36 +08:00
protocol 规范化单元测试的代码 2020-04-07 16:10:32 +08:00
test 修改文档 2020-08-26 22:52:36 +08:00
tools/mq 修改文档 2020-08-26 22:52:36 +08:00
util mq添加redis实现 2020-04-07 09:13:27 +08:00
vendor 启动脚本再merge 2019-04-09 14:19:12 +08:00
zk 修改文档 2020-08-26 22:52:36 +08:00
.gitignore 添加git忽略文件 2019-04-11 09:42:57 +08:00
Dockerfile 文档更新 2020-08-27 16:49:38 +08:00
README.md no message 2020-12-04 22:06:28 +08:00
TcpServConfig.json 添加mq 2020-04-07 00:08:49 +08:00
deploy.bat 文档更新 2020-08-27 16:49:38 +08:00
go.mod 文档更新 2020-08-27 16:49:38 +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 修改文档 2020-08-26 22:52:36 +08:00
restart.sh 添加deploy脚本 2019-03-14 18:02:58 +08:00

README.md

介绍

tcp流转包服务端框架。。
this repo is desperated...looks like websocket can do it natually.

特性

功能:
提供连接数管理,支持熔断,热重启。 支持 context 化回调机制。

支持分布式,和主节点选举。

主节点的作用 心跳包支持。 服务端推送支持。

可选并行回调或者同步回调方式。

并行回调就是异步回调,回调不保证执行得有序性。 同步回调一定会在上个回调函数执行完毕后执行。

How to use

package main

import (
	"flag"
	"tcptemplate/config"
	"tcptemplate/logger"
	"tcptemplate/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