├── .gitignore ├── LICENSE ├── README.md ├── app.yaml ├── common ├── define.go └── error_code.go ├── config └── config.go ├── docs ├── 性能优化.md └── 消息可靠性和有序性.md ├── go.mod ├── go.sum ├── lib ├── cache │ ├── group_cache.go │ ├── group_cache_test.go │ ├── seq_cache.go │ ├── seq_cache_test.go │ └── user_cache.go ├── etcd │ ├── discovery.go │ └── register.go └── mq │ ├── message.go │ └── message_test.go ├── main.go ├── model ├── friend.go ├── group.go ├── group_user.go ├── message.go ├── uid.go └── user.go ├── pkg ├── db │ ├── db.go │ ├── redis.go │ └── redis_test.go ├── etcd │ ├── etcd.go │ └── etcd_test.go ├── logger │ └── logger.go ├── middlewares │ └── auth.go ├── mq │ └── rabbitmq.go ├── protocol │ ├── pb │ │ ├── conn.pb.go │ │ ├── conn_grpc.pb.go │ │ ├── message.pb.go │ │ └── mq_msg.pb.go │ └── proto │ │ ├── conn.proto │ │ ├── message.proto │ │ └── mq_msg.proto ├── rpc │ └── client.go └── util │ ├── md5.go │ ├── panic.go │ ├── strconv.go │ ├── token.go │ ├── uid.go │ └── uid_test.go ├── profile ├── router ├── router.go └── ws_router.go ├── service ├── friend.go ├── group.go ├── group_user.go ├── rpc_server │ └── conn.go ├── seq.go ├── uid.go ├── user.go └── ws │ ├── conn.go │ ├── heartbeat.go │ ├── message.go │ ├── req.go │ └── server.go ├── sql └── create_table.sql └── test ├── router_test.go ├── ws_benchmark ├── client.go ├── main.go ├── manager.go └── timer.go └── ws_client └── main.go /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | log -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/README.md -------------------------------------------------------------------------------- /app.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/app.yaml -------------------------------------------------------------------------------- /common/define.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/common/define.go -------------------------------------------------------------------------------- /common/error_code.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/common/error_code.go -------------------------------------------------------------------------------- /config/config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/config/config.go -------------------------------------------------------------------------------- /docs/性能优化.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/docs/性能优化.md -------------------------------------------------------------------------------- /docs/消息可靠性和有序性.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/docs/消息可靠性和有序性.md -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/go.mod -------------------------------------------------------------------------------- /go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/go.sum -------------------------------------------------------------------------------- /lib/cache/group_cache.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/lib/cache/group_cache.go -------------------------------------------------------------------------------- /lib/cache/group_cache_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/lib/cache/group_cache_test.go -------------------------------------------------------------------------------- /lib/cache/seq_cache.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/lib/cache/seq_cache.go -------------------------------------------------------------------------------- /lib/cache/seq_cache_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/lib/cache/seq_cache_test.go -------------------------------------------------------------------------------- /lib/cache/user_cache.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/lib/cache/user_cache.go -------------------------------------------------------------------------------- /lib/etcd/discovery.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/lib/etcd/discovery.go -------------------------------------------------------------------------------- /lib/etcd/register.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/lib/etcd/register.go -------------------------------------------------------------------------------- /lib/mq/message.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/lib/mq/message.go -------------------------------------------------------------------------------- /lib/mq/message_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/lib/mq/message_test.go -------------------------------------------------------------------------------- /main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/main.go -------------------------------------------------------------------------------- /model/friend.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/model/friend.go -------------------------------------------------------------------------------- /model/group.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/model/group.go -------------------------------------------------------------------------------- /model/group_user.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/model/group_user.go -------------------------------------------------------------------------------- /model/message.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/model/message.go -------------------------------------------------------------------------------- /model/uid.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/model/uid.go -------------------------------------------------------------------------------- /model/user.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/model/user.go -------------------------------------------------------------------------------- /pkg/db/db.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/pkg/db/db.go -------------------------------------------------------------------------------- /pkg/db/redis.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/pkg/db/redis.go -------------------------------------------------------------------------------- /pkg/db/redis_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/pkg/db/redis_test.go -------------------------------------------------------------------------------- /pkg/etcd/etcd.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/pkg/etcd/etcd.go -------------------------------------------------------------------------------- /pkg/etcd/etcd_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/pkg/etcd/etcd_test.go -------------------------------------------------------------------------------- /pkg/logger/logger.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/pkg/logger/logger.go -------------------------------------------------------------------------------- /pkg/middlewares/auth.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/pkg/middlewares/auth.go -------------------------------------------------------------------------------- /pkg/mq/rabbitmq.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/pkg/mq/rabbitmq.go -------------------------------------------------------------------------------- /pkg/protocol/pb/conn.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/pkg/protocol/pb/conn.pb.go -------------------------------------------------------------------------------- /pkg/protocol/pb/conn_grpc.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/pkg/protocol/pb/conn_grpc.pb.go -------------------------------------------------------------------------------- /pkg/protocol/pb/message.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/pkg/protocol/pb/message.pb.go -------------------------------------------------------------------------------- /pkg/protocol/pb/mq_msg.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/pkg/protocol/pb/mq_msg.pb.go -------------------------------------------------------------------------------- /pkg/protocol/proto/conn.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/pkg/protocol/proto/conn.proto -------------------------------------------------------------------------------- /pkg/protocol/proto/message.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/pkg/protocol/proto/message.proto -------------------------------------------------------------------------------- /pkg/protocol/proto/mq_msg.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/pkg/protocol/proto/mq_msg.proto -------------------------------------------------------------------------------- /pkg/rpc/client.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/pkg/rpc/client.go -------------------------------------------------------------------------------- /pkg/util/md5.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/pkg/util/md5.go -------------------------------------------------------------------------------- /pkg/util/panic.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/pkg/util/panic.go -------------------------------------------------------------------------------- /pkg/util/strconv.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/pkg/util/strconv.go -------------------------------------------------------------------------------- /pkg/util/token.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/pkg/util/token.go -------------------------------------------------------------------------------- /pkg/util/uid.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/pkg/util/uid.go -------------------------------------------------------------------------------- /pkg/util/uid_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/pkg/util/uid_test.go -------------------------------------------------------------------------------- /profile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/profile -------------------------------------------------------------------------------- /router/router.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/router/router.go -------------------------------------------------------------------------------- /router/ws_router.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/router/ws_router.go -------------------------------------------------------------------------------- /service/friend.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/service/friend.go -------------------------------------------------------------------------------- /service/group.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/service/group.go -------------------------------------------------------------------------------- /service/group_user.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/service/group_user.go -------------------------------------------------------------------------------- /service/rpc_server/conn.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/service/rpc_server/conn.go -------------------------------------------------------------------------------- /service/seq.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/service/seq.go -------------------------------------------------------------------------------- /service/uid.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/service/uid.go -------------------------------------------------------------------------------- /service/user.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/service/user.go -------------------------------------------------------------------------------- /service/ws/conn.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/service/ws/conn.go -------------------------------------------------------------------------------- /service/ws/heartbeat.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/service/ws/heartbeat.go -------------------------------------------------------------------------------- /service/ws/message.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/service/ws/message.go -------------------------------------------------------------------------------- /service/ws/req.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/service/ws/req.go -------------------------------------------------------------------------------- /service/ws/server.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/service/ws/server.go -------------------------------------------------------------------------------- /sql/create_table.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/sql/create_table.sql -------------------------------------------------------------------------------- /test/router_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/test/router_test.go -------------------------------------------------------------------------------- /test/ws_benchmark/client.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/test/ws_benchmark/client.go -------------------------------------------------------------------------------- /test/ws_benchmark/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/test/ws_benchmark/main.go -------------------------------------------------------------------------------- /test/ws_benchmark/manager.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/test/ws_benchmark/manager.go -------------------------------------------------------------------------------- /test/ws_benchmark/timer.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/test/ws_benchmark/timer.go -------------------------------------------------------------------------------- /test/ws_client/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmePicacho/GoChat/HEAD/test/ws_client/main.go --------------------------------------------------------------------------------