Skip to content

Ganzhe2028/LAN-ChatRoom

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

局域网/互联网聊天室

这是一个基于 WebSocket 的即时聊天应用,支持局域网和互联网访问,支持多用户实时聊天和用户名设置。

功能特性

  • 实时消息传输
  • 多用户支持
  • 自定义用户名
  • 简洁的用户界面
  • 自动消息滚动
  • 支持本地、内网穿透和云端部署

技术栈

  • Node.js (Express + WebSocket)
  • MongoDB (消息存储)
  • HTML5 + CSS3
  • JavaScript (ES6)

部署选项

1. 本地局域网部署

环境要求

  • Node.js v18+
  • MongoDB v6+

安装步骤

# 克隆仓库
git clone https://github.com/Ganzhe2028/LAN-ChatRoom.git
cd LAN-ChatRoom

# 安装依赖
npm install

# 启动服务器
npm start

访问应用:

http://localhost:8080

2. 内网穿透部署

推荐工具

  1. ngrok(免费版)
  2. frp(开源)
  3. localtunnel(免费)

使用 ngrok 示例

  1. 注册并安装 ngrok
  2. 获取 authtoken
  3. 启动应用
npm start
  1. 检查服务器状态
curl http://localhost:8080
  1. 启动 ngrok
ngrok http 8080
  1. 使用 ngrok 提供的公网 URL 访问

故障排除

  • ERR_NGROK_8012 错误:
    1. 确保服务器正在运行
    2. 检查端口是否正确
    3. 尝试重启服务器
    4. 检查防火墙设置
    5. 确保没有其他程序占用 8080 端口

3. 云端部署(使用 Render)

准备工作

  1. 注册 Render 账号:https://render.com
  2. 创建 MongoDB Atlas 免费集群:https://www.mongodb.com/cloud/atlas

部署步骤

  1. Fork 本项目到你的 GitHub 账号
  2. 登录 Render 控制台
  3. 创建新的 Web Service
  4. 连接 GitHub 仓库
  5. 配置环境变量:
    • MONGODB_URI: MongoDB Atlas 连接字符串
    • PORT: 8080
  6. 选择免费计划
  7. 点击部署

数据库配置

  • 本地:mongodb://localhost:27017
  • 云端:MongoDB Atlas 连接字符串
  • 数据库名称:chatApp
  • 集合名称:messages

使用说明

  1. 打开应用后,输入用户名并点击"加入聊天室"
  2. 在消息输入框中输入内容,按回车发送
  3. 所有在线用户将实时收到消息
  4. 用户加入或离开时会有系统通知

注意事项

  • 确保 MongoDB 服务已启动
  • 默认端口为 8080,可在 server.js 中修改
  • 建议使用现代浏览器以获得最佳体验
  • 云端部署时请妥善保管数据库凭证

项目结构

LAN-ChatRoom/
├── index.html        # 前端页面
├── style.css         # 样式表
├── script.js         # 前端逻辑
├── server.js         # 后端服务器
├── package.json      # 项目配置
└── README.md         # 项目文档

贡献指南

欢迎提交 Pull Request 或 Issue

许可证

MIT