Lucky是一款基于Flutter开发的即时通讯(IM)应用,支持一对一聊天、群聊、音视频通话等功能。采用现代化的技术栈,提供了稳定、高效、安全的即时通讯解决方案。
- 💬 即时消息:支持文字、图片、视频等多种消息类型
- 🎥 音视频通话:基于WebRTC的实时音视频通讯
- 📞 通讯录管理:好友添加、删除、黑名单等管理功能
- 🔐 安全加密:RSA加密算法保障消息传输安全
- 🌐 跨平台:一套代码支持Android和iOS平台
- 🌙 现代化UI:采用Material Design设计风格
| |
| |
- 框架:Flutter + GetX
- 状态管理:GetX + Provider
- 网络请求:Dio
- 数据库:Floor (SQLite ORM)
- 实时通讯:WebSocket + WebRTC
- 本地存储:GetStorage + Flutter Secure Storage
- 📸 相机和相册:camera + image_picker
- 🔐 权限管理:permission_handler
- 📱 二维码扫描:mobile_scanner
- 🎵 音频播放:audioplayers
- 📺 视频播放:video_player
- 🌍 WebView:webview_flutter
- Flutter SDK >=3.0.0 <4.0.0
- Dart SDK >=3.0.0 <4.0.0
flutter pub getflutter runprotoc -I=proto --dart_out=lib/proto proto/im_connect.proto google/protobuf/any.proto google/protobuf/struct.protolib/ ├── app/ │ ├── api/ # API接口 │ ├── bindings/ # GetX依赖绑定 │ ├── controller/ # GetX控制器 │ ├── database/ # 数据库相关 │ ├── models/ # 数据模型 │ ├── routes/ # 路由配置 │ ├── services/ # 业务服务 │ ├── translations/ # 国际化 │ └── ui/ # 用户界面 │ ├── pages/ # 页面组件 │ └── widgets/ # 自定义组件 ├── config/ # 配置文件 ├── constants/ # 常量定义 └── utils/ # 工具类 #user nobody; worker_processes 1; #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { # HTTPS 监听端口(默认 443 也可以自定义,如 9191) listen 9190 ssl; server_name localhost; # 修改为你的域名或 IP # 配置 SSL 证书和密钥文件路径 ssl_certificate "D:/Program Files/Nginx/cert/localhost.crt"; ssl_certificate_key "D:/Program Files/Nginx/cert/localhost.key"; # 配置密钥文件地址 # 反向代理所有请求到后端 HTTP 接口 location / { # 此处 backend_http_host 与 backend_http_port 请替换成后端实际的 IP 和端口,例如 http://127.0.0.1:8080 proxy_pass http://localhost:9191; # 设置 HTTP 版本和必要的头部 proxy_http_version 1.1; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 通知后端使用 HTTPS 协议(虽然 Nginx 与后端之间使用 HTTP,但客户端为 HTTPS) proxy_set_header X-Forwarded-Proto https; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_read_timeout 3600s; } } server { # HTTPS 监听端口(默认 443 也可以自定义,如 9191) listen 1980 ssl; server_name localhost; # 修改为你的域名或 IP # 配置 SSL 证书和密钥文件路径 ssl_certificate "D:/Program Files/Nginx/cert/localhost.crt"; ssl_certificate_key "D:/Program Files/Nginx/cert/localhost.key"; # 配置密钥文件地址 location / { proxy_pass http://127.0.0.1:8080/; proxy_http_version 1.1; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } location ~ /.+/.*\.(flv|m3u8|ts|aac|mp3)$ { proxy_pass http://127.0.0.1:8080$request_uri; proxy_http_version 1.1; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } location /api/ { proxy_pass http://127.0.0.1:1985/api/; proxy_http_version 1.1; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } location /rtc/ { proxy_pass http://127.0.0.1:1985/rtc/; proxy_http_version 1.1; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } }我们欢迎所有形式的贡献!请查看 CONTRIBUTING.md 了解详情。
- Fork 项目
- 创建功能分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 创建 Pull Request
- 提交 Issue 报告问题或建议新功能
- 加入技术交流群讨论技术细节
-
问题反馈: Issues
-
邮箱: 382192293@qq.com
本项目仅供学习和参考使用,不得用于任何商业用途。作者不对使用本项目可能引起的任何直接或间接损失承担责任。
- 本项目是一个开源学习项目,旨在提供即时通讯技术的学习和研究参考。
- 项目中涉及的技术方案、代码实现仅供参考,不保证其在生产环境中的稳定性、安全性和可靠性。
- 用户在使用本项目时应自行承担所有风险,包括但不限于数据丢失、系统损坏、通信安全等问题。
- 作者不提供任何形式的技术支持和保障,也不对项目的使用效果做任何承诺和保证。
- 如将本项目用于商业用途,需自行承担可能的法律风险和责任。
本项目目前处于积极维护状态,持续更新和完善功能。
⭐ 如果这个项目对您有帮助,请给我们一个星标!



