├── .DS_Store ├── .gitignore ├── .vscode └── settings.json ├── LICENSE ├── README.md ├── README_ENGLISH.md ├── admin ├── admin.go └── html │ └── index.html ├── business_client ├── business_client.go ├── business_client_conf.go └── gateway_client.go ├── discovery ├── .DS_Store ├── discover.go ├── etcd_discovery │ └── etcd_discovery.go └── redis_discovery │ └── redis_discovery.go ├── dns └── dns.go ├── docs └── performance_test.md ├── go.mod ├── go.sum ├── grpcs ├── main.go └── socket_cluster_gateway │ ├── config │ └── config.go │ ├── handler │ └── gateway.go │ ├── logic │ └── gateway_logic │ │ ├── is_online.go │ │ ├── send_to_client_id.go │ │ └── send_to_client_ids.go │ ├── proto │ └── gateway │ │ ├── gateway.pb.go │ │ ├── gateway.proto │ │ └── gateway_grpc.pb.go │ └── socket_cluster_gateway.go ├── logx ├── fileLogger.go ├── filelogger_test.go ├── log.go ├── log │ └── 2023-08-19.log ├── logx.go ├── stdlogger.go └── stdlogger_test.go ├── node ├── .DS_Store ├── common.go ├── conf.pb.go ├── conf.proto ├── const.go ├── msg.pb.go ├── msg.proto ├── node.go ├── node_conf.go ├── plugin.go └── session.go ├── pic ├── business_client.png └── socket_cluster.png ├── protocol ├── .DS_Store ├── flow_proto.go ├── protocol.go ├── quic_protocol │ ├── quic_connect.go │ ├── quic_protocol.go │ └── quic_test.go ├── session.go ├── tcp_protocol │ ├── tcp_connection.go │ └── tcp_protocol.go ├── tls.go └── ws_protocol │ ├── ws_connection.go │ └── ws_protocol.go ├── server └── server.go ├── session_storage ├── redis_storage │ └── redis_storage.go └── session_storage.go └── unsafehash └── segment_hash.go /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/.DS_Store -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | main 2 | .idea 3 | .vscode -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "git.ignoreLimitWarning": true 3 | } -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/README.md -------------------------------------------------------------------------------- /README_ENGLISH.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/README_ENGLISH.md -------------------------------------------------------------------------------- /admin/admin.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/admin/admin.go -------------------------------------------------------------------------------- /admin/html/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/admin/html/index.html -------------------------------------------------------------------------------- /business_client/business_client.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/business_client/business_client.go -------------------------------------------------------------------------------- /business_client/business_client_conf.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/business_client/business_client_conf.go -------------------------------------------------------------------------------- /business_client/gateway_client.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/business_client/gateway_client.go -------------------------------------------------------------------------------- /discovery/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/discovery/.DS_Store -------------------------------------------------------------------------------- /discovery/discover.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/discovery/discover.go -------------------------------------------------------------------------------- /discovery/etcd_discovery/etcd_discovery.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/discovery/etcd_discovery/etcd_discovery.go -------------------------------------------------------------------------------- /discovery/redis_discovery/redis_discovery.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/discovery/redis_discovery/redis_discovery.go -------------------------------------------------------------------------------- /dns/dns.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/dns/dns.go -------------------------------------------------------------------------------- /docs/performance_test.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/go.mod -------------------------------------------------------------------------------- /go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/go.sum -------------------------------------------------------------------------------- /grpcs/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/grpcs/main.go -------------------------------------------------------------------------------- /grpcs/socket_cluster_gateway/config/config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/grpcs/socket_cluster_gateway/config/config.go -------------------------------------------------------------------------------- /grpcs/socket_cluster_gateway/handler/gateway.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/grpcs/socket_cluster_gateway/handler/gateway.go -------------------------------------------------------------------------------- /grpcs/socket_cluster_gateway/logic/gateway_logic/is_online.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/grpcs/socket_cluster_gateway/logic/gateway_logic/is_online.go -------------------------------------------------------------------------------- /grpcs/socket_cluster_gateway/logic/gateway_logic/send_to_client_id.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/grpcs/socket_cluster_gateway/logic/gateway_logic/send_to_client_id.go -------------------------------------------------------------------------------- /grpcs/socket_cluster_gateway/logic/gateway_logic/send_to_client_ids.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/grpcs/socket_cluster_gateway/logic/gateway_logic/send_to_client_ids.go -------------------------------------------------------------------------------- /grpcs/socket_cluster_gateway/proto/gateway/gateway.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/grpcs/socket_cluster_gateway/proto/gateway/gateway.pb.go -------------------------------------------------------------------------------- /grpcs/socket_cluster_gateway/proto/gateway/gateway.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/grpcs/socket_cluster_gateway/proto/gateway/gateway.proto -------------------------------------------------------------------------------- /grpcs/socket_cluster_gateway/proto/gateway/gateway_grpc.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/grpcs/socket_cluster_gateway/proto/gateway/gateway_grpc.pb.go -------------------------------------------------------------------------------- /grpcs/socket_cluster_gateway/socket_cluster_gateway.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/grpcs/socket_cluster_gateway/socket_cluster_gateway.go -------------------------------------------------------------------------------- /logx/fileLogger.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/logx/fileLogger.go -------------------------------------------------------------------------------- /logx/filelogger_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/logx/filelogger_test.go -------------------------------------------------------------------------------- /logx/log.go: -------------------------------------------------------------------------------- 1 | package logx 2 | 3 | var LogHandler = NewFileLogger() 4 | -------------------------------------------------------------------------------- /logx/log/2023-08-19.log: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /logx/logx.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/logx/logx.go -------------------------------------------------------------------------------- /logx/stdlogger.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/logx/stdlogger.go -------------------------------------------------------------------------------- /logx/stdlogger_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/logx/stdlogger_test.go -------------------------------------------------------------------------------- /node/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/node/.DS_Store -------------------------------------------------------------------------------- /node/common.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/node/common.go -------------------------------------------------------------------------------- /node/conf.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/node/conf.pb.go -------------------------------------------------------------------------------- /node/conf.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/node/conf.proto -------------------------------------------------------------------------------- /node/const.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/node/const.go -------------------------------------------------------------------------------- /node/msg.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/node/msg.pb.go -------------------------------------------------------------------------------- /node/msg.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/node/msg.proto -------------------------------------------------------------------------------- /node/node.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/node/node.go -------------------------------------------------------------------------------- /node/node_conf.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/node/node_conf.go -------------------------------------------------------------------------------- /node/plugin.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/node/plugin.go -------------------------------------------------------------------------------- /node/session.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/node/session.go -------------------------------------------------------------------------------- /pic/business_client.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/pic/business_client.png -------------------------------------------------------------------------------- /pic/socket_cluster.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/pic/socket_cluster.png -------------------------------------------------------------------------------- /protocol/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/protocol/.DS_Store -------------------------------------------------------------------------------- /protocol/flow_proto.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/protocol/flow_proto.go -------------------------------------------------------------------------------- /protocol/protocol.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/protocol/protocol.go -------------------------------------------------------------------------------- /protocol/quic_protocol/quic_connect.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/protocol/quic_protocol/quic_connect.go -------------------------------------------------------------------------------- /protocol/quic_protocol/quic_protocol.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/protocol/quic_protocol/quic_protocol.go -------------------------------------------------------------------------------- /protocol/quic_protocol/quic_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/protocol/quic_protocol/quic_test.go -------------------------------------------------------------------------------- /protocol/session.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/protocol/session.go -------------------------------------------------------------------------------- /protocol/tcp_protocol/tcp_connection.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/protocol/tcp_protocol/tcp_connection.go -------------------------------------------------------------------------------- /protocol/tcp_protocol/tcp_protocol.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/protocol/tcp_protocol/tcp_protocol.go -------------------------------------------------------------------------------- /protocol/tls.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/protocol/tls.go -------------------------------------------------------------------------------- /protocol/ws_protocol/ws_connection.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/protocol/ws_protocol/ws_connection.go -------------------------------------------------------------------------------- /protocol/ws_protocol/ws_protocol.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/protocol/ws_protocol/ws_protocol.go -------------------------------------------------------------------------------- /server/server.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/server/server.go -------------------------------------------------------------------------------- /session_storage/redis_storage/redis_storage.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/session_storage/redis_storage/redis_storage.go -------------------------------------------------------------------------------- /session_storage/session_storage.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/session_storage/session_storage.go -------------------------------------------------------------------------------- /unsafehash/segment_hash.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weblazy/socket-cluster/HEAD/unsafehash/segment_hash.go --------------------------------------------------------------------------------