Loading... # 项目地址 [DHEnry-FMCRAFT/websocket-chat: 来自AI编写的websocket版的聊天程序](https://github.com/DHEnry-FMCRAFT/websocket-chat) # 💬 WebSocket 聊天室应用 一个基于 WebSocket 的实时聊天室应用,支持多频道聊天、管理员功能和用户管理。 ## 🚀 功能特性 ### 👥 用户功能 - 🆓 **自动用户名分配** - 首次进入自动生成5位随机用户名 - 🔄 **多频道切换** - 支持在多个频道间自由切换 - 👀 **用户列表查看** - 查看指定频道的在线用户 - 💬 **实时消息收发** - 基于 WebSocket 的实时通信 - 🎨 **彩色消息显示** - 不同类型消息使用不同颜色区分 ### ⚡ 管理员功能 - 🔐 **管理员认证** - 使用密码验证管理员身份 - 👮 **用户管理** - 踢出用户、断开用户连接 - 📢 **频道管理** - 清退频道、关闭频道 - 👁️ **全服监控** - 查看全服在线用户 - 📩 **私信功能** - 向指定用户发送私信 ## 🛠️ 技术栈 - **后端**: Python + asyncio + websockets - **前端**: 纯 Python 命令行客户端 - **通信**: WebSocket + JSON - **安全**: SHA-256 密码哈希 ## 📦 安装与运行 ### 1. 克隆项目 ```bash git clone https://github.com/DHEnry-FMCRAFT/websocket-chat cd websocket-chat ``` ### 2. 安装依赖 ```bash pip install websockets ``` ### 3. 配置服务器的允许频道 请编辑`server.py`中的`ALLOWED_CHANNELS`数组,逗号分隔,引号包裹允许的频道,注意允许的频道一定要包含`public` ### 4. 配置服务器管理员密码HASH 请编辑`hash.py`中的`test_string`变量,为初始密码,然后使用以下代码运行 ```bash python hash.py ``` 然后将生成后的hash设置为`server.py`中的`ADMIN_PASSWORD_HASH`变量的值,然后保存`server.py` ### 5. 启动服务器 ```bash python server.py ``` 服务器默认监听 `0.0.0.0:8765`,允许的频道:public、1、2、3 ### 6. 启动客户端 ```bash python client.py ``` ## 🎯 使用指南 ### 基本命令 | 命令 | 功能 | 示例 | |------|------|------| | `::login [用户名]` | 设置用户名 | `::login Alice` | | `::choose [频道ID]` | 切换频道 | `::choose 2` | | `::list [频道ID]` | 查看频道用户 | `::list 1` | | `exit` / `quit` | 退出聊天 | `exit` | ### 管理员命令 | 命令 | 功能 | 示例 | |------|------|------| | `::lists` | 查看全服用户 | `::lists` | | `::say [频道] [用户] [消息]` | 发送私信 | `::say 1 Bob "Hello"` | | `::kicks [频道] [用户] [理由]` | 踢出用户 | `::kicks 1 Bob "违规发言"` | | `::kick [频道] [理由]` | 清退频道 | `::kick 1 "频道维护"` | | `::closes [频道] [用户] [理由]` | 断开用户 | `::closes 1 Bob "多次违规"` | | `::close [频道] [理由]` | 关闭频道 | `::close 1 "封禁频道"` | ## 🔒 管理员登录 要使用管理员功能,请使用用户名 `administrator` 登录,系统会提示输入密码。 ## ⚙️ 配置说明 ### 当前默认EXAMPLE服务器配置 - **默认端口**: 8765 - **允许频道**: public, 1, 2, 3 - **管理员密码哈希**: 在 `server.py` 中配置 ### 客户端配置 - **调试模式**: 修改 `DEBUG` 变量切换默认服务器地址,1为使用`localhost:8765`,用于本地调试`server.py`,0为需要用户自行输入服务器地址 - **消息颜色**: 不同类型消息使用不同颜色标识 ## 🐛 故障排除 ### 常见问题 1. **连接被拒绝** - 确保服务器已启动且地址正确 2. **用户名已存在** - 更换用户名或切换到其他频道 3. **频道不允许** - 只允许使用预定义的频道ID ### 日志查看 服务器会在控制台输出运行状态和错误信息,客户端会显示连接状态和错误提示。 ## 📝 开发说明 ### 项目结构 ``` websocket-chat/ ├── server.py # 服务器主程序 ├── client.py # 客户端主程序 └── README.md # 项目说明 ``` # 来源 这个项目其实是 $Deepseek \times Doubao$ 一起写出来的(乱用LaTex),也是有很多的BUG,但也是在我的命令下写出来的 这个项目最终会放到 $FMCRAFT$ # 历程 2025年10月1日 PR V1.0 [Release V1.0 · DHEnry-FMCRAFT/websocket-chat](https://github.com/DHEnry-FMCRAFT/websocket-chat/releases/tag/%E6%9B%B4%E6%96%B0) V1.0 # 已知BUG * 登录时直接进入频道会导致无法发送消息,需要先自定义一个用户名 # 感谢AI 最后修改:2025 年 10 月 02 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 1 如果觉得我的文章对你有用,请随意赞赏