KR1470R/artos-messenger

GitHub: KR1470R/artos-messenger

一个基于Web的端到端加密实时通讯平台,提供安全消息传递和API集成能力。

Stars: 1 | Forks: 0

Artos Messenger

Fast, simple, connectable


# 文档内容 1. [关于](#about) 2. [演示](#demo) 3. [支持的系统](#supported-systems) 4. [API](#api) 1. [HTTP API](#http-api) 2. [Websockets API](#websockets-api) 1. [messages 命名空间](#messages-namespace) 1. [join_chat 事件](#join_chat-event) 2. [leave_chat 事件](#leave_chat-event) 3. [CRUD 事件](#crud-events) 1. [create_message 事件](#create_message-event) 2. [update_message 事件](#update_message-event) 3. [delete_message 事件](#delete_message-event) 4. [find_many_messages 事件](#find_many_messages-event) 5. [使用说明](#usage) 1. [安装](#installation) 2. [使用 Docker 运行](#running-using-docker) 3. [不使用 Docker 运行](#running-without-docker) 6. [ERD 图](#erd-diagram) 7. [待办事项](#todo) 8. [贡献](#contribution) 9. [许可证](#license) # 关于 实时聊天应用。 # 要求
# 支持的系统
# 演示 https://artos-messanger.xyz # API ## HTTP API HTTP REST API 文档通过 Swagger UI 展示,见[此处](https://artos-messanger.xyz/docs)。\ 生产环境 REST API URL - `https://artos-messanger.xyz/api/v1/` ## Websockets API 生产环境 Websocket URL - `https://artos-messanger.xyz/{namespace}`\ 注意,您需要使用 socket.io 与之交互。 ### `messages` 命名空间 此应用程序使用 websocket 网关在聊天成员之间进行实时消息交换。 #### `join_chat` 事件: 将用户绑定到系统中的一个聊天。\ 首先,当用户打开一个聊天时,客户端应连接到 WebSocket,并请求服务器加入目标聊天。

#### `leave_chat` 事件: 从系统中的一个聊天解绑用户。\ 当用户断开 socket 连接时,服务器会自动删除与该聊天和用户相关的已加入(已绑定)socket,从而停止对聊天消息的任何操作事件。 用户也可以手动离开聊天:

#### CRUD 事件 当客户端连接并加入聊天后,WebSocket 服务器就准备好监听事件并处理操作。 ##### `create_message` 事件:

##### `update_message` 事件:

##### `delete_message` 事件:

##### `find_many_messages` 事件:

# 使用说明 ## 安装 ``` git clone git@github.com:KR1470R/artos-messenger.git cd artos-messenger ``` 创建一个 `.env.development` 文件,格式如下(参见 [./backend/configs/.env.example](https://github.com/KR1470R/artos-messenger/blob/main/backend/configs/.env.example)): ``` APP_PORT=3000 DB_NAME=artosdb DB_HOST=127.0.0.1 DB_PORT=3306 DB_USER=artos DB_PASS=root DB_MIN_CONN=1 DB_MAX_CONN=10 JWT_TOKEN_SECRET=secret JWT_REFRESH_TOKEN_SECRET=secret ``` ### 使用 Docker 运行 创建 Docker 容器: ``` export NODE_ENV=development && docker-compose -f docker/docker-compose.yml --env-file .env.development up --build ``` 容器运行时,执行数据库迁移: ``` export NODE_ENV=development && npm run migrate:up ``` ### 不使用 Docker 运行 为前端安装依赖并构建: ``` cd frontend npm install npm run build ``` 为后端安装依赖: ``` cd ../backend npm install ``` 当数据库运行时,执行数据库迁移(请不要忘记将您本地的数据库凭据填入上面创建的 .env 文件中): ``` export NODE_ENV=development && npm run migrate:up ``` 现在运行应用程序: ``` npm run build && npm run start:dev ``` 运行以上命令后,访问 。 # ERD 图

# 待办事项 - [x] 创建基础 Nest.js 项目 - [x] 创建基础 React.js 项目 - [x] 创建 Docker 容器并在其中构建整个应用程序 - [x] 实现数据库 schema 与迁移 - [x] 实现后端应用的 JWT token 认证 - [x] 实现前端应用的 JWT token 认证 - [x] 实现管理用户、群组、聊天、消息的端点 - [ ] 实现管理用户、群组、聊天、消息的 UI - [x] 实现用于用户间实时消息共享的聊天 websocket 通道 - [x] 实现消息 socket 的 JWT 鉴权守卫 - [ ] 实现文件附件(如照片、文件等)(可选) - [ ] 实现完全自适应的 UI/UX - [x] 创建 ERD 图 - [x] 集成 Swagger - [x] 将应用演示部署到服务器 # 贡献 欢迎随时创建 issues。 # 许可证

标签:API设计, Docker容器化, MITM代理, Node.js后端, React前端, REST API, Socket.io, Swagger文档, WebSocket通信, 加密通信, 即时通讯, 安全消息传递, 实时消息交换, 实时聊天, 快速应用, 消息CRUD, 用户管理, 端到端加密, 网络测绘, 网络通信, 聊天室, 自动化攻击, 请求拦截, 跨平台支持