# web_share **Repository Path**: woooooody_admin/web_share ## Basic Information - **Project Name**: web_share - **Description**: 基于局域网的点对点信息和文件分享工具 - **Primary Language**: JavaScript - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-02-25 - **Last Updated**: 2026-02-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 局域网信息共享与文件共享工具 一个纯前端的局域网信息共享工具,支持文本消息、文件共享,无需安装任何数据库或复杂配置,双击即可运行。 ## ✨ 功能特性 - 📢 **实时消息** - WebSocket 实时推送,消息即时同步 - 📁 **文件共享** - 上传和下载文件,支持图片、视频、音频预览 - 😀 **Emoji 表情** - 支持常用 emoji 表情选择 - 🔒 **无需登录** - 基于浏览器指纹自动识别用户 - 🌐 **局域网访问** - 同一网络内多设备实时同步 - 📱 **响应式设计** - 支持电脑、手机、平板访问 - 💾 **本地存储** - 数据按日期分文件存储,易于管理 - 📊 **在线人数** - 实时显示当前在线用户数 - 📷 **二维码分享** - 扫码快速访问,方便手机端使用 - 🎬 **媒体播放** - 支持视频、音频文件在线播放 ## 🚀 快速开始 ### Python 启动(推荐) ```bash # 进入项目目录 cd web_share # 启动服务器 python server.py ``` 启动后会显示访问地址: ``` 本机访问: http://localhost:6666 局域网访问: http://192.168.x.x:6666 WebSocket 端口: 9901 ``` ## 📖 使用说明 ### 首次使用 1. 打开网页后,设置您的名字 2. 系统会自动生成唯一的浏览器指纹用于身份识别 3. 点击顶部 📡 图标可显示二维码,手机扫码即可访问 ### 发布消息 1. 在底部输入框输入消息内容 2. 可选:点击 😀 添加 emoji 表情 3. 可选:点击 📎 上传附件(图片、视频、文档等) 4. 按 `Ctrl+Enter` 或点击发送按钮发送 ### 文件共享 - **图片** - 自动显示缩略图,点击可查看原图 - **视频/音频** - 支持在线播放,点击播放按钮即可 - **其他文件** - 点击下载按钮保存到本地 ### 查看历史 - 消息按时间正序排列(新的在底部) - 滚动到顶部可加载更多历史消息 - 新消息自动滚动到底部(除非用户向上滚动查看历史) ## 🏗️ 项目结构 ``` web_share/ ├── server.py # Python 服务器端 (HTTP + WebSocket) ├── index.html # 主页面 ├── css/ │ └── style.css # 样式文件 ├── js/ │ ├── qrcode.js # 二维码生成库 │ ├── fileShare.js # 文件共享功能 │ ├── message.js # 消息管理 │ └── webrtc.js # IP 检测 ├── data/ # 数据存储目录 │ ├── 2024-01-15.json # 按日期存储的消息 │ └── uploads/ # 上传的文件 ├── docker/ # Docker 部署配置 │ ├── Dockerfile │ └── docker-compose.yaml └── README.md # 本文件 ``` ## 🔧 技术栈 - **前端**: HTML5 + CSS3 + JavaScript (ES6+) - **后端**: Python 3 + http.server + websockets - **实时通信**: WebSocket (端口 9901) - **存储**: JSON 文件 + 本地文件系统 - **特色功能**: - 浏览器指纹身份识别 - WebRTC IP 检测 - 二维码生成 - 静态文件缓存优化 ## 🌟 核心特性 ### 浏览器指纹 使用多种硬件和浏览器特征生成唯一标识: - Canvas 指纹 - WebGL 信息 - 可用字体列表 - 硬件并发数、内存 ### 智能 IP 检测 - 自动检测内网 IP - 服务端通过 WebSocket 返回客户端 IP,确保准确性 ### 数据存储 - 按日期分文件存储,避免单文件过大 - 分页加载,提升性能 - 支持上滚加载更多历史 ### 消息去重 - HTTP 响应和 WebSocket 推送双重保障 - 智能去重机制,防止消息重复显示 ## 📱 界面预览 ``` ┌─────────────────────────────────────────────────────────┐ │ 📡 http://...:6666 👥 在线: 5人 │ │ 张三 🔐 A1B2C3D4 │ ├─────────────────────────────────────────────────────────┤ │ │ │ ┌───────────────────────────────────────────────────┐ │ │ │ 张三 🔐 A1B2C3D4 5分钟前 │ │ │ │ │ │ │ │ 大家好,分享一个文件 │ │ │ │ 📄 项目文档.pdf 2.5MB [⬇️] │ │ │ └───────────────────────────────────────────────────┘ │ │ │ │ ┌───────────────────────────────────────────────────┐ │ │ │ 李四 🔐 E5F6G7H8 2分钟前 │ │ │ │ │ │ │ │ [图片缩略图] │ │ │ └───────────────────────────────────────────────────┘ │ │ │ ├─────────────────────────────────────────────────────────┤ │ [😀] [📎] │ │ [输入消息内容... ] [发送] │ └─────────────────────────────────────────────────────────┘ ``` ## 🐳 Docker 部署 ```bash # 使用 Docker Compose 启动 cd docker docker-compose up -d # 或者手动构建 docker build -t web_share . docker run -d -p 6666:6666 -p 9901:9901 web_share ``` ## 🔒 安全说明 - 仅在局域网内访问,不对外网暴露 - 文件存储在本地,不经过第三方服务器 - 浏览器指纹仅用于标识,不包含敏感信息 ## 📝 注意事项 1. **防火墙设置** - 确保防火墙允许 6666 (HTTP) 和 9901 (WebSocket) 端口访问 2. **同一网络** - 所有设备需连接同一 WiFi 或路由器 3. **浏览器兼容** - 推荐使用 Chrome、Edge、Firefox 最新版本 4. **数据备份** - 定期备份 `data/` 目录以防丢失 ## 🐛 常见问题 **Q: 页面加载很慢?** A: 已添加静态文件缓存,首次加载后刷新会更快。 **Q: 消息重复显示?** A: 已优化消息去重逻辑,如仍有问题请检查浏览器控制台日志。 **Q: 手机扫码后无法访问?** A: 请确保手机和电脑在同一 WiFi 网络下。 **Q: WebSocket 连接失败?** A: 请检查防火墙是否放行了 9901 端口。 ## 🤝 贡献指南 欢迎提交 Issue 和 Pull Request! ## 📄 开源协议 MIT License ## 💬 联系方式 如有问题或建议,欢迎通过以下方式联系: - 提交 Issue - 发送邮件 --- **如果这个项目对您有帮助,请给个 ⭐ Star 支持一下!**