littlebot
Published on 2025-04-02 / 0 Visits
0

【源码】基于Go语言的即时通讯系统

项目简介

本项目是基于Go语言开发的简单即时通讯系统,以简洁方式实现基本即时通讯功能,同时支持消息的多种编解码方式。项目采用分层设计理念,后续会逐步完善网关层、路由层和业务服务层,以达成高可用和分布式微服务架构。

项目的主要特性和功能

  1. 消息编解码:当前按顺序和长度将消息结构体编码成字节流,还开发了根据定义结构体使用语法树自动生成编解码的工具,后续会强化编解码功能并实现抽象工厂兼容多种编解码。
  2. 分层架构:涵盖网关层、路由层和业务服务层,路由按区域划分,支持每个区域对应多个网关,各部分可进行冗余主从部署。
  3. 通讯功能:支持客户端建立连接、登录认证、收发消息等基本通讯操作,新建立连接可通过HTTP或拆包组包从网关获取历史消息。
  4. 消息处理:消息支持流式加密,密钥使用登录后分配的sessionId;新消息通过特定流程通知客户端,客户端可请求获取大于指定ID的新消息。
  5. 推送服务:有独立的推送服务,通过队列实现新消息推送等功能。

安装使用步骤

前提条件

假设你已下载本项目的源码文件,且本地已配置好Go语言开发环境。

构建项目

可选择以下任意一种构建方式: 1. 使用shell命令:GOOS=linux go build -o xxx 进行构建。 2. 利用Jenkins自动触发构建。 3. 使用Bazel进行构建。

配置运行

  1. 确保配置文件(如相关配置信息)设置正确。
  2. 运行服务:按分层架构依次启动网关层、路由层和业务服务层的程序。

客户端操作

  1. 客户端直接访问lvs负载,建立与网关的连接。
  2. 完成TSL握手和认证登录。
  3. 即可进行消息的发送和接收操作。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】