Skip to content

LucklySpace/Lucky-mobile

Repository files navigation

📱 Lucky - Flutter即时通讯(IM)应用

Flutter License Platform

Lucky是一款基于Flutter开发的即时通讯(IM)应用,支持一对一聊天、群聊、音视频通话等功能。采用现代化的技术栈,提供了稳定、高效、安全的即时通讯解决方案。

🌟 主要特性

  • 💬 即时消息:支持文字、图片、视频等多种消息类型
  • 🎥 音视频通话:基于WebRTC的实时音视频通讯
  • 📞 通讯录管理:好友添加、删除、黑名单等管理功能
  • 🔐 安全加密:RSA加密算法保障消息传输安全
  • 🌐 跨平台:一套代码支持Android和iOS平台
  • 🌙 现代化UI:采用Material Design设计风格

🖼 项目预览

🛠 技术栈

📦 依赖功能

🚀 快速开始

环境要求

  • Flutter SDK >=3.0.0 <4.0.0
  • Dart SDK >=3.0.0 <4.0.0

安装依赖

flutter pub get

运行应用

flutter run

生成 ProtoBuf

protoc -I=proto --dart_out=lib/proto proto/im_connect.proto google/protobuf/any.proto google/protobuf/struct.proto

📁 项目结构

lib/ ├── app/ │ ├── api/ # API接口 │ ├── bindings/ # GetX依赖绑定 │ ├── controller/ # GetX控制器 │ ├── database/ # 数据库相关 │ ├── models/ # 数据模型 │ ├── routes/ # 路由配置 │ ├── services/ # 业务服务 │ ├── translations/ # 国际化 │ └── ui/ # 用户界面 │ ├── pages/ # 页面组件 │ └── widgets/ # 自定义组件 ├── config/ # 配置文件 ├── constants/ # 常量定义 └── utils/ # 工具类 

📁 nignx 服务反代

#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 了解详情。

贡献方式

  1. Fork 项目
  2. 创建功能分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 创建 Pull Request

开发交流

  • 提交 Issue 报告问题或建议新功能
  • 加入技术交流群讨论技术细节

📞 联系我们

📢 免责声明

本项目仅供学习和参考使用,不得用于任何商业用途。作者不对使用本项目可能引起的任何直接或间接损失承担责任。

  1. 本项目是一个开源学习项目,旨在提供即时通讯技术的学习和研究参考。
  2. 项目中涉及的技术方案、代码实现仅供参考,不保证其在生产环境中的稳定性、安全性和可靠性。
  3. 用户在使用本项目时应自行承担所有风险,包括但不限于数据丢失、系统损坏、通信安全等问题。
  4. 作者不提供任何形式的技术支持和保障,也不对项目的使用效果做任何承诺和保证。
  5. 如将本项目用于商业用途,需自行承担可能的法律风险和责任。

💬 项目状态

本项目目前处于积极维护状态,持续更新和完善功能。


⭐ 如果这个项目对您有帮助,请给我们一个星标!

About

A code repository designed to show the best GitHub has to offer.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors