Golang Websocket 集群方案demo,通过Redis的Pub&Sub功能,实现多个Websocket Server同步消息,解决大并发需求。
server:
port: 8000 #运行端口
redis:
host: redis
port: 6379
password:
db: 0
message:
channel: message_channel #消息channel名称
docker compose up -d
使用websocket客户端连接ws://localhost:8000
mv config.example.yml config.yml
go build
./go-websocket-cluster
部署多套后(多服务器或不同端口),使用SLB或Nginx反向代理实现负载均衡
type 定义请见 entity/entity.go
- request
{ "type": 3 }
- response
{ "type": 1, "data": 1, "timestamp": 1618811942 }
- request
{ "type": 2 }
- response
{ "type": 4, "data": 0, "timestamp": 1618811942 }
- request
{ "type": 5, "data": "hello" }
- response
{ "type": 5, "data": "hello", "timestamp": 1618811942 }
更多功能请根据需求自行开发