一个基于 Electron 的局域网聊天应用,支持手动添加 IP 好友、私聊和文件传输功能。
- 🌐 局域网通信: 在同一局域网内进行实时聊天
- 👥 手动添加好友: 通过 IP 地址添加局域网内的其他用户
- 💬 私聊功能: 与指定用户进行一对一聊天
- 📁 文件传输: 支持发送和接收各种类型的文件
- 🎨 现代化界面: 美观的用户界面和流畅的用户体验
- 🔧 自定义菜单栏: 无边框窗口设计,自定义标题栏
- 📱 响应式设计: 适配不同屏幕尺寸
- 前端: HTML5, CSS3, JavaScript
- 后端: Node.js, Express, WebSocket
- 桌面应用: Electron
- 文件传输: Multer, HTTP 文件服务
- 实时通信: WebSocket (ws)
- Node.js 16.0 或更高版本
- npm 或 yarn 包管理器
npm installnpm run devnpm start(这个现在有问题,大神可以在添加功能后来修改)- 运行应用后,会自动启动聊天服务器(端口 8888)和文件服务器(端口 8889)
- 应用会显示您的本地 IP 地址
- 点击左侧的「添加好友」按钮
- 输入要连接的用户的 IP 地址和端口(默认 8888)
- 点击「连接」建立连接
- 在左侧用户列表中选择要聊天的用户
- 在底部输入框中输入消息
- 按 Enter 键或点击发送按钮发送消息
- 选择要聊天的用户
- 点击输入框左侧的文件按钮或使用菜单栏的「发送文件」功能
- 选择要发送的文件
- 文件会自动上传并发送给对方
- 当收到文件时,会在聊天窗口中显示文件信息
- 点击「下载」按钮保存文件到本地
localchater/
├── main.js # Electron 主进程
├── package.json # 项目配置和依赖
├── src/
│ ├── server/
│ │ └── chatServer.js # 聊天服务器
│ └── renderer/
│ ├── index.html # 主界面
│ ├── styles/
│ │ └── main.css # 样式文件
│ └── js/
│ └── main.js # 前端逻辑
├── uploads/ # 文件上传目录(自动创建)
└── README.md # 项目说明
- 8888: WebSocket 聊天服务器端口
- 8889: HTTP 文件传输服务器端口
请确保这些端口在防火墙中是开放的,以便局域网内的其他设备能够连接。
- 网络安全: 此应用仅适用于受信任的局域网环境
- 防火墙设置: 确保防火墙允许应用使用指定端口
- 文件大小: 建议传输的文件大小不超过 100MB
- 同时在线: 支持多个用户同时在线聊天
Ctrl+N: 添加好友Ctrl+O: 发送文件Ctrl+Q: 退出应用F12: 开发者工具F11: 全屏模式Enter: 发送消息Shift+Enter: 换行
- 检查网络连接,确保在同一局域网内
- 检查防火墙设置,允许应用通过防火墙
- 确认目标 IP 地址和端口号正确
- 确保目标设备也在运行 LocalChater
- 检查文件大小是否过大
- 确保有足够的磁盘空间
- 检查文件权限
- 重新启动应用
- 前端功能在
src/renderer/js/main.js中添加 - 后端功能在
src/server/chatServer.js中添加 - 样式修改在
src/renderer/styles/main.css中进行
-用electron的开发者模式就行
- 查看控制台输出获取错误信息
- 使用
npm run dev启动开发模式
MIT License - 详见 LICENSE 文件
欢迎提交 Issue 和 Pull Request 来改进这个项目!
LocalChater - 让局域网聊天变得简单有趣!