本目录提供多个独立示例工程,均使用各自的 go.mod,避免污染根模块依赖图。
gorilla-nethttp:gorilla/websocket + net/http upgrade 示例coder-websocket:coder/websocket 官方 NetConn 桥接示例balancer-gateway:零额外依赖的多节点 gateway / drain / 调权 / metadata 路由示例gorilla-balancer-gateway:多节点通过 WebSocket tunnel 接入 gateway,再由 balancer.Pool 调度的完整示例127.0.0.1cd examples/gorilla-nethttp
go run ./cmd/server
# 新终端
go run ./cmd/client
cd examples/coder-websocket
go run ./cmd/server
# 新终端
go run ./cmd/client
cd examples/balancer-gateway
go run ./cmd/node -id node-a -listen 127.0.0.1:19091
# 新终端
go run ./cmd/node -id node-b -listen 127.0.0.1:19092 -zone ap-beijing
# 新终端
go run ./cmd/gateway \
-node 'node-a@127.0.0.1:19091,zone=ap-shanghai,version=v1,weight=2,max=4' \
-node 'node-b@127.0.0.1:19092,zone=ap-beijing,version=v1,weight=1,max=2'
cd examples/gorilla-balancer-gateway
go run ./cmd/gateway
# 新终端
go run ./cmd/node -id node-a -zone ap-shanghai -version v1 -weight 2
# 新终端
go run ./cmd/node -id node-b -zone ap-beijing -version v1 -weight 1 -delay 500ms
每个示例都可以独立运行。进入示例目录后运行:
go run ./...
具体命令请参考各示例的 README.md 文件。