# 虫洞 **Repository Path**: wangxiaohuo2/wormhole ## Basic Information - **Project Name**: 虫洞 - **Description**: 🌀 一对一 P2P 聊天工具 — 支持文本、图片、文件传输 A:你有没有碰到这种情况,你的PC机和笔记本之间要传递一个文件,用微信来传,这边登录了那边就登出了,互传文件十分麻烦。 B:你有没有想要浪漫一下,有一个软件只有你和你最爱的人一对一沟通,没有朋友、没有同事、没有全世界,只有属于你和他的世界。 - **Primary Language**: Rust - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-17 - **Last Updated**: 2026-04-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 虫洞 (Wormhole) 🌀 一对一 P2P 聊天工具 — 支持文本、图片、文件传输 A:你有没有碰到这种情况,你的PC机和笔记本之间要传递一个文件,用微信来传,这边登录了那边就登出了,互传文件十分麻烦。 B:你有没有想要浪漫一下,有一个软件只有你和你最爱的人一对一沟通,没有朋友、没有同事、没有全世界,只有属于你和他的世界。 这个软件采用一种极简的浪漫主义思维,只为你和你的爱人提供一个一对一的沟通平台,或者是你的两个端。 ## 项目结构 ``` love-lock/ # Tauri 客户端 ├── index.html # 主页面 ├── style.css # 样式 (3 个颜色主题) ├── api.js # 服务端 API 封装 ├── p2p.js # WebRTC P2P 连接管理 ├── app.js # 主应用逻辑 └── src-tauri/ # Tauri 后端 (Rust) love-lock-server/ # Spring Boot 服务端 └── src/main/java/com/wormhole/ ├── config/ # JWT, CORS, WebSocket 配置 ├── controller/ # REST 接口 + WebSocket 信令 + 文件上传 ├── entity/ # 数据实体 ├── mapper/ # MyBatis Mapper ├── model/ # 数据模型 └── service/ # 业务逻辑 ``` ## 功能 - 📧 邮箱注册 + 验证码验证 - 🔐 JWT Token 登录 - 🔗 伴侣绑定(双向确认) - 💬 P2P 直连聊天(服务端不保存消息) - 🖼 图片发送与显示 - 📎 文件传输与下载 - 🟢 在线状态(服务端保存) - 👤 个人信息修改(邮箱重绑定、密码修改) - 🎨 三种主题:男生蓝 / 女生粉 / 猫咪橙 ## 快速启动 ### 1. 启动服务端 ```bash cd love-lock-server mvn spring-boot:run ``` 服务端运行在 `http://localhost:8080` ### 2. 启动客户端 ```bash cd love-lock npm install npm run tauri dev ``` ### 3. 构建分发 ```bash # Windows npm run tauri build # Android (需要 Android SDK) npm run tauri android build ``` ## 测试流程 1. 注册两个账号(A 和 B) 2. 分别登录两个账号 3. A 点击「绑定伴侣」→ 输入 B 的邮箱 4. B 会收到绑定请求 → 确认 5. 双方上线后自动建立 P2P 连接 → 开始聊天 6. 支持文本消息、发送图片、发送文件 ## 技术栈 - **客户端**: Tauri 2 + 原生 HTML/CSS/JS + WebRTC - **服务端**: Spring Boot 3 + WebSocket + JWT + SQLite - **通信**: P2P (WebRTC DataChannel) + 信令服务器 (WebSocket) - **文件**: 服务端中转存储,P2P 传输文件元信息 代码只提供了前端,需要后端的请联系: ![输入图片说明](97269448f8bc6f1e6514bdb052235e20.jpg)