断线重连服务器端代理。
client <--> goscon <---> server
client
和goscon
之间使用断线重连协议,goscon
把客户端的请求内容转发到server
。
无论client
因为何种原因主动或被动断开连接,goscon
都会维持对应的server
连接,使server
感受不到client
断开。
在goscon
维持连接期间,client
可以使用断线重连协议,无缝重用之前的连接。
若scp.reuse_time
秒没有被重用,goscon
断开跟server
的连接。
编译时开启sproto
扩展,新建连接后自动给后端发送一条sproto
消息,宣布客户端的原始ip
地址信息。
-
deps: go v1.13+
-
build
# normal compile
go build -mod=vendor
# enable sproto hook & debug
# go build -tags sproto,debug -mod=vendor
- config
配置选项含义,请参考config.go
- run
./goscon -logtostderr -v 10 -config config.yaml
- test
- 编译测试程序
# normal compile
go build -mod=vendor ./examples/client
- 启动服务端
./client -startEchoServer :11248
- 测试 tcp
./client -packets 10 -concurrent 100 -rounds 100
- 测试 kcp
./client kcp
可以通过默认开启的管理端口http://localhost:6620
进行配置热更新,查看内部状态。
- 热更新配置
- 修改配置文件
- 访问:
http://localhost:6620/reload
- 查看内部状态
- 当前配置:
http://localhost:6620/config
- 指标:
http://localhost:6620/metrics
- kcp snmp:
http://localhost:6620/kcp/snmp
- 当前配置: