# im-mq **Repository Path**: xdnice/im-mq ## Basic Information - **Project Name**: im-mq - **Description**: 使用EMQTT为核心,Golang为服务,CEF和WebUI为外表,搭建的一个基础款的IM系统。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-03-10 - **Last Updated**: 2022-06-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # im-mq ## 项目介绍 使用EMQTT为核心,Golang为服务,CEF和WebUI为外表,搭建的一个基础款的IM系统。 ## 软件架构 声明: 这不是一个经过了严格设计的系统,无集群设计。计划达到单机在线10K以上就可以。核心思想是,实战一下IM设计的常见问题及技术。 此项目分为前后两端,主要完成一个IM的功能,其中前后端分别为了展现不同的技术: - 后端,Redis登陆Session,Mysql存储。Http、RPC、MQTT(WS)服务同时提供。 - 前端,Qt+Cef,Web方式展现UI,Native提供本地功能。 项目以MQTT、__Thrift__为核心,设计如下功能: 登陆和注册,Session共享。 使用Http RPC接口完成用户信息获取、发送消息等功能 客户端通过clientid(session)/user/pwd三部分验证身份,实现消息订阅 单聊,群聊,好友 文件管理,单独服务器 消息持久化及离线,单独服务器 客户端Qt+Cef, Web, App 扩展部分: 分享 IPFS/FastDFS 音视频 远程桌面 ```bash +-----------------------------------------------+ | Login +---------+ | | +------> | Redis +------------+ | | | +----+----+ | | | | | | | | | +----+----+ +-----+---+ | | | Reg | Nginx | | Golang | | | +------> | SerVer +------+ SerVer | | | | +----+----+ +-----+---+ | | +-----+-+ | | | | | Client| +----+----+ | | | +-------+ | MQTT +------------+ | | +------> | SerVer | | | +---------+ | +-----------------------------------------------+ ``` ## 思考列举 IM 发信息 群聊 传文件 好友 分享 IPFS 离线 音视频 远程桌面 ## 安装教程 1. Config Mysql、Redis、QMQTT 2. Run prj bin 3. visit http://127.0.0.1:9000 ## 使用说明 1. xxxx 2. xxxx 3. xxxx ## 参与贡献 1. Fork 本项目 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request