项目地址: https://github.com/LockGit/gochat
类别:Go
项目描述:
- gochat 为纯 go 实现的即时通讯系统,支持私信消息与房间广播消息,各层之间通过 rpc 通讯,支持水平扩展。
- 支持 websocket,tcp 接入,并且在最新的版本中已经支持 websocket,tcp 消息互通。
- 各层之间基于 etcd 服务发现,在扩容部署时将会方便很多。
- 使用 redis 作为消息存储与投递的载体,十分轻量,在实际场景中还可以替换为更重的类似 kafka,rabbitMQ 。
- 由于 go 的交叉编译特性,编译后可以快速在各个平台上运行,gochat 架构及目录结构清晰。
- 本项目贴心的提供了 docker 一键构建所有环境依赖,安装起来十分便捷。(如果是体验,强烈建议使用 docker 构建)
这一版的修改增加了 tcp 拆包解包部分,增加 tcp && websocket 之间的消息通信,待优化的问题还有很多,学习使用参考
架构设计

聊天室预览

Tcp 与 Websocket 消息互通
