项目简介
本项目是基于Go语言开发的简单即时通讯系统,以简洁方式实现基本即时通讯功能,同时支持消息的多种编解码方式。项目采用分层设计理念,后续会逐步完善网关层、路由层和业务服务层,以达成高可用和分布式微服务架构。
项目的主要特性和功能
- 消息编解码:当前按顺序和长度将消息结构体编码成字节流,还开发了根据定义结构体使用语法树自动生成编解码的工具,后续会强化编解码功能并实现抽象工厂兼容多种编解码。
- 分层架构:涵盖网关层、路由层和业务服务层,路由按区域划分,支持每个区域对应多个网关,各部分可进行冗余主从部署。
- 通讯功能:支持客户端建立连接、登录认证、收发消息等基本通讯操作,新建立连接可通过HTTP或拆包组包从网关获取历史消息。
- 消息处理:消息支持流式加密,密钥使用登录后分配的sessionId;新消息通过特定流程通知客户端,客户端可请求获取大于指定ID的新消息。
- 推送服务:有独立的推送服务,通过队列实现新消息推送等功能。
安装使用步骤
前提条件
假设你已下载本项目的源码文件,且本地已配置好Go语言开发环境。
构建项目
可选择以下任意一种构建方式:
1. 使用shell命令:GOOS=linux go build -o xxx
进行构建。
2. 利用Jenkins自动触发构建。
3. 使用Bazel进行构建。
配置运行
- 确保配置文件(如相关配置信息)设置正确。
- 运行服务:按分层架构依次启动网关层、路由层和业务服务层的程序。
客户端操作
- 客户端直接访问lvs负载,建立与网关的连接。
- 完成TSL握手和认证登录。
- 即可进行消息的发送和接收操作。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】