侧边栏壁纸
博主昵称
Yi

轻量化PHP实现web聊天室

2025年05月29日 25阅读 0评论 0点赞

前言

作为最简单的网页聊天WEB应用,使用比较方便部署的PHP来实现后端,使用原生javascript实现前端的消息传输,并且采用轮询(polling)机制啦获取最新消息,虽然这样会给服务器带来更多的请求负担,但作为小型自用的聊天室来说不用担心。

已实现的功能

用户注册和登录 表情包系统 系统公告 背景图片设置
屏幕截图_29-5-2025_175729_192.168.2.5.jpeg
支持多种消息类型:文本、图片、语音、HTML、阅后即焚消息、视频链接发送(不支持上传本地视频,对服务器压力过大)
屏幕截图_29-5-2025_18426_192.168.2.5.jpeg
实现了消息撤回功能
支持消息回复功能
支持阅后即焚消息
实现了用户头像系统
支持在线用户统计
支持消息已读状态追踪
支持语音通话功能
支持pushplus微信推送通知

已进行优化的部分

使用消息缓存减少文件写入
实现了文件大小管理机制
根据窗口活跃状态动态调整轮询频率
使用头像缓存减少服务器请求
性方面可能不如 WebSocket。不过通过动态调整轮询间隔,在保证基本实时性的同时也考虑到了服务器负载。

目录结构

├── admin/           # 管理后台
├── avatars/         # 用户头像存储
├── config/          # 配置文件
            ├── announcement.txt  # 公告文件
            ├── background.dat      # 默认聊天壁纸
            ├── MSG.txt                      # 聊天记录(只存储50k)
            ├── MSGEND.TXT            # 聊天总记录
├── data/           # 数据文件
├── emojis/         # 表情包存储
├── includes/       # PHP功能模块
├── public/         # 公共资源
├── uploads/        # 上传文件存储
├── voices/         # 语音消息存储
├── .htaccess      # Apache配置
└── index.php      # 主入口文件

安装说明

  1. 克隆或下载项目到Web服务器目录
    Github项目地址

    git clone https://github.com/y313191/miniwechat.git
  2. 确保以下目录具有写入权限:

    • uploads/
    • avatars/
    • voices/
    • data/
    • emojis/
  3. 配置Web服务器(Apache/Nginx)
  4. 访问网站首页,系统将自动初始化

配置说明

系统配置

系统配置存储在 config/config.php 中,主要配置项包括:

  • 文件上传限制
  • 允许的文件类型
  • 默认设置
  • 时区设置
  • 路径配置
  • pushplus推送密钥填写

安全设置

  • 密码强度要求
  • 用户注册控制
  • 文件上传限制
  • 会话管理
0

—— 评论区 ——

昵称
邮箱
网址
取消
博主栏壁纸
博主头像 Yi

14 文章数
9 标签数
2 评论量