Logo

HitUp Messenger

一个功能齐全的聊天信使(类似Whatsapp),使用 Flutter 构建。

Screenshot Screenshot Screenshot

关于项目

  • 使用 Flutter 构建 Android 和 iOS 应用。
  • 使用 Firestore 数据库存储用户数据。
  • 使用 Firebase Storage 存储图片。
  • 使用 MQTT 作为消息协议,托管在 AWS EC2 上。
  • 使用 SQLite 在本地数据库中存储联系人与聊天记录。
  • 使用 OneSignal 进行推送通知。

功能

使用 MQTT 协议实现超快消息传递(Facebook Messenger 使用 MQTT)

架构

当您从应用发送消息时,消息首先发送到 MQTT 服务器。然后 MQTT 服务器直接将消息发送给应该接收它的客户端设备。接收到消息后,客户端首先将其存储在本地 SQLite 数据库中,然后显示在聊天屏幕上。(Firestore 绝不用于存储或发送文本消息。Firestore 仅用于存储用户和联系人数据)。要了解更多关于 MQTT 的信息,请 参考这里

手机号码身份验证登录

身份验证使用 Firebase 完成。

Screenshot Screenshot

发送图片

发送和接收图片(类似 Snapchat 的 UI)。
图片不存储在图库中。而是以字节格式存储在本地 SQLite 数据库中。

Screenshot

使用 SQLite 作为本地数据库存储消息,实现消息的超快加载

即使客户端离线,打开聊天屏幕时也可以查看消息,因为消息直接从本地 SQLite 数据库加载。这也是存储消息的唯一位置。MQTT 服务器不存储旧消息。MQTT 服务器仅存储最后发送的消息,并在发送新消息时替换它。

向手机联系人发送文本

在联系人屏幕上,您将看到所有也正在使用此信使的手机联系人列表,并可以与他们聊天。(就像在 Whatsapp 中向您的联系人发送消息一样)

Screenshot

通过用户名添加联系人。发送和接收好友请求

您还可以通过用户名向某人发送好友请求。发送好友请求后,对方将收到推送通知和好友请求。如果对方接受请求,您将收到通知,并且能够与该用户聊天。(与 Snapchat 中的功能相同)

Screenshot

屏蔽联系人

Screenshot

实时推送通知

使用 OneSignal。当用户收到新消息、好友请求或有人接受其好友请求时,即使应用已关闭,用户也将收到实时推送通知。

  • 收到新消息
  • 收到好友请求
  • 有人接受其好友请求

Notification

更改个人资料照片

发送前进行图片压缩

表情符号支持

新拟态 UI

邀请好友功能

其他重要信息

安装和设置(可选)

  1. Firebase

要更改 Firestore 数据库,只需将 `android/app` 中的 `google-services.json` 文件替换为您 Firebase 账户中的 `google-services.json` 文件即可。

  1. MQTT 服务器

我使用一个托管在 AWS EC2 实例上的 MQTT 服务器来传输消息。有关如何设置您自己的 MQTT 服务器的详细信息,请参阅此处:在 AWS EC2 上设置 MQTT 服务器。然后,在 `lib/functions/MQTTFunction.dart` 文件中的 `connect()` 函数中,将 `serverAddress` 参数更改为您 EC2 实例的公共地址。

  1. OneSignal

首先在 OneSignal 上创建一个账户。然后,在 `lib/functions/UserDataFunction.dart` 文件中的 `sendNotification()` 函数中,将 `app_id` 参数替换为您自己的 OneSignal app_id。

动力与贡献

我希望将这个信使打造成网络上最大的开源信使,集 Whatsapp、Telegram、Signal、Snapchat 等顶级信使的所有功能于一身。还有很多功能待添加,如端到端加密、音频消息、音视频通话、动态等。因此,我们欢迎 Pull Request。请尽您所能做出贡献,添加新功能、查找或修复错误、完善文档、改进代码注释等。

贡献

如果您想以非编码方式为本项目做出贡献,请在此处联系我:[email protected]

许可证

MIT 许可

支持者

Stargazers repo roster for @realdiganta/hitup-messenger
Forkers repo roster for @realdiganta/hitup-messenger

GitHub

https://github.com/realdiganta/hitup-messenger