Skip to content

damoguyan8844/server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Horcus Server

本项目旨在对IM系统的架构与技术进行一次全新的尝试,发于兴趣。

系统架构设计原则:

  • 极简架构
  • 易于部署
  • 跨平台
  • 平行扩展

系统架构

架构图

架构说明

  • 消息中心

    功能:

    • 用户身份校验

    • 消息路由

    • 消息收发

    客户端连接、消息的路由、收发需要使用业务中心下发的签名进行身份校验

  • 文件中心

    功能:

    • 用户身份校验

    • 文件上传

    • 文件下载

    文件的上传、下载需要使用业务中心下发的签名进行身份校验

  • 业务中心

    提供HTTP服务,WEB后台框架技术选型为 gin

    功能:

    • 用户管理

    • 用户身份鉴权

    接收消息中心、文件中心的用户身份校验请求,返回签名

    • 消息管理

    • 好友管理

    • 群组管理

  • 存储集群

    功能:

    • 业务数据的存储

    集群选型为 Cassandra , 满足平行扩展的要求

功能点

  • 文本消息
  • 群组消息
  • 图片消息
  • 文件传送
  • 音频消息
  • 视频消息

功能点里非斜体部分为第一期需要实现的功能

协议规范

协议分为两部分

  1. 网络协议

    Client 与 Server 网络层交互使用的协议采用 IBM 出品的 MQTT, 详细说明请参考:

    MQTT 原版

    MQTT 中文版

    采用 MQTT 基于以下考虑:

    • 协议精简,于开发适于初学者,于系统适于当下的移动互联网,省电省流量
    • 协议层面考虑了网络的不稳定性的处理
    • 广泛应用,很多软件、系统使用,有很多开源实现

    限制:

    由于 MQTT 只是专注于网络层数据的交互,业务层面的逻辑需要业务系统制定规范

  2. 业务协议

    业务协议专指 MQTT 协议中 PUBLISH 协议的 有效载荷(Payload)部分

业务协议请点我

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published