Skip to content

LShuXin/BT

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BigTalk

这是一个可一键部署的全栈IM项目,主要用于个人学习,后端采用C++/Node/Python实现,前端涵盖移动客户端、Web端、PC端

一、项目介绍

开源协议:Apache License, Version 2.0 定位:IM个人学习 特点:全栈项目 功能:可靠的消息传递机制:支持文字、图片、语音等消息类型,支持在线以及离线文件传输等

二、分支说明

三、项目架构

服务端

  • im_msg_server: 与客户端建立Socket长链接,处理客户端im消息信令。长链接建立之后客户端要立即发送登录包,否则im_msg_server会断开与客户端建立的长链接;通信的链路为:客户端->core_proxy_server->im_msg_server->db_proxy_server;
  • im_web_socket_server: 上述长链接的WebSocket实现,主要是为了支持Web客户端
  • im_http_msg_server: 提供im消息服务的http接口,客户端通过im_http_msg_server与im_msg_server通信
  • im_route_server: 路由服务器,为登录在不同im_msg_server的用户提供消息转发功能
  • im_file_server: 文件服务器通信链路为:客户端->core_proxy_server->im_file_server->core_proxy_server
  • im_msfs_server: 图片存储服务器
  • im_dbproxy_server: 为IM服务代理数据库(MySql、Redis)操作,避免其它im服务与数据库的直接交互
  • im_login_server: im_msg_server上线之后会注册到这个服务,因此可以在此服务查看各个im_msg_server的负载
  • core_proxy_server: 反向代理服务器,用于屏蔽服务端的实现细节
  • auth_server: 授权服务器,主要提供账号注册、登录、密码找回等功能
  • business_serveer: 其它业务服务器,目前包括文章管理、配置管理
  • admin_server:其实是一个管理后台

服务端项目地址:BT_Server

客户端

  • Android
  • IOS
  • Web(开发中)
  • PC(开发中)

客户端项目地址:BT_Client

四、服务端部署

1)用现有镜像进行部署

cd docker
docker-compose up -f docker-compose.yml -d

2)自定义镜像部署

cd docker
docker-compose -f "docker-compose-build.yml" up -d --build

注意,如果不配置smtp信息,则只能在管理后台进行账号添加,要想体验客户端注册登录功能,开发者需要配置自己的smtp服务

服务端

五、客户端使用

5.1 管理后台

1)登录管理后台

2)部门管理

  • 添加部门

  • 修改部门信息

  • 向部门添加成员

3)成员管理

  • 添加成员

  • 修改成员信息

4)聊天管理

  • 新建群聊

  • 修改群聊信息

5)配置管理

  • 修改配置

6)文章管理

  • 新增文章

  • 文章编辑

7)系统管理

  • 查看在线状态

  • 查看系统日志

5.2 Android

1)注册

2)登录

3)找回密码

4)查看会话列表

查看会话列表

5)单聊

单聊

6)群聊

发起群聊

7)聊天设置

聊天设置

8)查看联系人

联系人列表1 联系人列表2 搜索联系人

9)查看广场动态

广场

10)广场动态评论、点赞

11)查看个人资料

我的资料 个人简介

5.3 IOS

1)注册

2)登录

3)找回密码

4)查看会话列表

查看会话列表

5)单聊

单聊

6)群聊

7)聊天设置

8)查看联系人

9)查看广场动态

10)广场动态评论、点赞

11)查看个人资料

5.4 Web

1)注册

2)登录

3)找回密码

4)查看会话列表

5)单聊

6)群聊

7)聊天设置

8)查看联系人

9)查看广场动态

10)广场动态评论、点赞

11)查看个人资料

5.5 PC

1)注册

2)登录

3)找回密码

4)查看会话列表

5)单聊

6)群聊

7)聊天设置

8)查看联系人

9)查看广场动态

10)广场动态评论、点赞

11)查看个人资料

六、文档

七、TODO

  • 提供 Docker(CentOS7.9) 部署方案
  • 添加反向代理服务器
  • 升级 Android 到 API 29
  • 解决 Android 上无法登录
  • 解决 Android 上点击联系人列表奔溃
  • 解决 Android 上聊天点击发送图片无响应
  • 解决 Android 上聊天点击语音退出登录
  • 解决 Android 布局问题
  • 升级 IOS 到 IOS 11
  • 升级 IOS PB 到 3.x 版本
  • 解决 IOS 上的布局适配问题,去掉所有xib布局文件
  • 解决图片服务器连接问题
  • Mac 客户端验证(x)
  • 开发 Web 版本客户端
  • 管理后台用 React 重写
  • Android 用 kotlin 重写
  • IOS 用 swift 重写
  • Flutter 版本
  • 后端密码+盐值校验问题
  • 崩溃日志上传(传到自己的服务器)
  • 协议文件中的 FileType 重命名为 FileTypeX(Mac上枚举冲突)
  • 单元测试、自动化测试
  • 添加用户个人注册功能
  • 将登录服务单独抽离,采用 http 服务实现登录授权
  • 添加 business_server
  • 将 msg_server 的负载均衡交给 nginx

八、参考链接

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published