URL-TEXT
创建时间
Jan 3, 2026 02:53 AM
Realtime Chat 实时自毁聊天应用
本项目是基于 joschan21/nextjs16_realtime_chat 的复刻版本,感谢原作者的开源贡献。
一个基于 Next.js 的实时自毁聊天应用,提供私密、安全的即时通讯体验。房间具有自动过期机制,所有消息在房间过期或被销毁后永久删除。
✨ 功能特性
- 🔒 私密聊天 - 创建安全的聊天房间,保护用户隐私
- ⏰ 自动过期 - 房间默认 10 分钟后自动销毁,所有消息永久删除
- 📡 实时通信 - 基于 WebSocket 的实时消息推送
- 👤 匿名身份 - 自动生成匿名用户名,无需注册
- 📱 响应式设计 - 完美适配桌面和移动设备
- 🎨 现代 UI - 使用 Tailwind CSS 构建的深色主题界面
- 🗑️ 手动销毁 - 支持随时手动销毁房间
🛠️ 技术栈
前端
- Next.js 16 - React 框架
- React 19 - UI 库
- TypeScript - 类型安全
- Tailwind CSS 4 - 样式框架
- @tanstack/react-query - 数据获取和状态管理
- @upstash/realtime - 实时通信客户端
后端
- Elysia - 高性能 API 框架
- @upstash/redis - Redis 数据库客户端
- @upstash/realtime - 实时通信服务
- Zod - 数据验证
开发工具
- ESLint - 代码检查
- PostCSS - CSS 处理
- Babel React Compiler - React 编译器优化
📦 安装
前置要求
- Node.js 18+
- npm / yarn / pnpm / bun
环境变量配置
创建
.env.local 文件并配置以下环境变量:获取 Upstash Redis 凭证:
- 创建新的 Redis 数据库
- 复制 REST URL 和 Token 到
.env.local
安装依赖
🚀 使用
开发模式
启动开发服务器:
打开 http://localhost:3000 查看应用。
生产构建
构建生产版本:
启动生产服务器:
代码检查
运行 ESLint 检查代码:
📁 项目结构
🎯 核心功能说明
房间管理
- 创建房间: 生成唯一的房间 ID
- 房间过期: 默认 10 分钟后自动销毁
- 手动销毁: 用户可随时销毁房间
- TTL 查询: 实时显示剩余时间
消息功能
- 发送消息: 支持文本消息(最多 1000 字符)
- 实时接收: 基于 WebSocket 的实时推送
- 消息历史: 自动保存和加载消息记录
- 时间戳: 显示消息发送时间
用户身份
- 匿名用户: 自动生成匿名用户名
- 本地存储: 用户名保存在 localStorage
- 身份标识: 每个用户有唯一的身份 ID
🔌 API 接口
房间相关
创建房间
响应:
获取房间剩余时间
响应:
销毁房间
消息相关
发送消息
请求体:
获取消息历史
响应:
实时通信
WebSocket 连接
事件:
chat.message- 新消息
chat.destroy- 房间销毁
🔒 安全特性
- Token 认证: 每个房间连接需要有效的 token
- 房间隔离: 不同房间的消息完全隔离
- 自动清理: 过期数据自动删除
- 输入验证: 使用 Zod 进行严格的数据验证
🎨 UI 特性
- 深色主题: 护眼的深色界面
- 响应式布局: 自适应各种屏幕尺寸
- 实时倒计时: 显示房间剩余时间
- 消息区分: 区分自己和他人消息
- 复制链接: 一键复制房间链接
📝 配置说明
修改房间过期时间
编辑
src/app/api/[[...slugs]]/route.ts:修改消息限制
编辑
src/app/api/[[...slugs]]/route.ts:🚀 部署
Vercel 部署
- 将代码推送到 GitHub
- 在 Vercel 导入项目
- 配置环境变量
- 部署完成
其他平台
项目可部署到任何支持 Next.js 的平台:
- Vercel
- Netlify
- Railway
- Render
- 自托管服务器
🤝 贡献
欢迎提交 Issue 和 Pull Request!
📄 许可证
MIT License
🔗 相关链接
💡 使用提示
- 房间链接: 创建房间后,复制链接分享给其他用户
- 时间限制: 注意房间剩余时间,及时保存重要信息
- 多设备: 同一用户可在多个设备同时登录
- 隐私保护: 房间销毁后,所有数据无法恢复
🐛 已知问题
- 房间过期后,用户需要手动刷新页面
- 网络断开后,需要重新连接房间
📧 联系方式
如有问题或建议,欢迎通过 Issue 联系。
🙏 致谢
本项目复刻自 joschan21/nextjs16_realtime_chat,感谢原作者 joschan21 的开源贡献和优秀设计。
Loading...
