Skip to content

FMCRAFT-Org/websocket-chat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 

Repository files navigation

💬 WebSocket 聊天室应用

一个基于 WebSocket 的实时聊天室应用,支持多频道聊天、管理员功能和用户管理。

🚀 功能特性

👥 用户功能

  • 🆓 自动用户名分配 - 首次进入自动生成5位随机用户名
  • 🔄 多频道切换 - 支持在多个频道间自由切换
  • 👀 用户列表查看 - 查看指定频道的在线用户
  • 💬 实时消息收发 - 基于 WebSocket 的实时通信
  • 🎨 彩色消息显示 - 不同类型消息使用不同颜色区分

⚡ 管理员功能

  • 🔐 管理员认证 - 使用密码验证管理员身份
  • 👮 用户管理 - 踢出用户、断开用户连接
  • 📢 频道管理 - 清退频道、关闭频道
  • 👁️ 全服监控 - 查看全服在线用户
  • 📩 私信功能 - 向指定用户发送私信

🛠️ 技术栈

  • 后端: Python + asyncio + websockets
  • 前端: 纯 Python 命令行客户端
  • 通信: WebSocket + JSON
  • 安全: SHA-256 密码哈希

📦 安装与运行

1. 克隆项目

git clone https://github.com/DHEnry-FMCRAFT/websocket-chat
cd websocket-chat

2. 安装依赖

pip install websockets

3. 配置服务器的允许频道

请编辑server.py中的ALLOWED_CHANNELS数组,逗号分隔,引号包裹允许的频道,注意允许的频道一定要包含public

4. 配置服务器管理员密码HASH

请编辑hash.py中的test_string变量,为初始密码,然后使用以下代码运行

python hash.py

然后将生成后的hash设置为server.py中的ADMIN_PASSWORD_HASH变量的值,然后保存server.py

5. 启动服务器

python server.py

服务器默认监听 0.0.0.0:8765,允许的频道:public、1、2、3

6. 启动客户端

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          # 项目说明

以后也许会添加的内容

  • 🔐 添加用户注册系统
  • 💾 实现消息持久化存储
  • 🎨 开发 Web 界面版本
  • 🔔 添加消息通知功能

👥 贡献

欢迎提交 Issue 和 Pull Request 来改进这个项目!

🐛 已知BUG

  • 登录时直接进入频道会导致无法发送消息,需要先自定义一个用户名

此项目的README以后将不会更新,会转至https://www.fmcraft.top/index.php/archives/52.html

🤖 本项目由AI主力开发

About

来自AI编写的websocket版的聊天程序

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages