如何在没有 Firebase 的情况下在 Flutter 中构建在线聊天功能

问题描述 投票:0回答:0

我正在使用 Flutter 框架在 Dart 中编写一个社交网络应用程序。我选择了MySQL数据库,因为它更能满足我的需求。现在我正在实施一个类似于每个流行社交网络的在线聊天。网上有很多关于使用 Firestore 构建的 Flutter 聊天应用程序的文献,利用其实时特性,使用流构建器轻松实现等

考虑到我已经将 Firebase 用于 Firebase Auth 等其他服务,我想知道是使用 Firestore 来管理应用程序的消息传递组件,还是继续使用 MySQL 数据库。虽然 Firestore 有很多优点,但管理两个不同的数据库也确实不容易,特别是考虑到我不是该领域的专家。

我想到了各种可能的方法,例如,Socket.IO。但是,我仍然需要 poll,每隔几秒重复一次查询,因为 MySQL 没有像 PostgreSQL 或 Firestore 这样的监听/通知系统。

另一个想法是首先使用数据库。像这样:对于每次聊天,都有一个文件。此文件有三个副本(考虑 1:1 聊天):两个由互相发送消息的两个客户端拥有,而另一个副本在服务器上(托管数据库的服务器)。当我发送消息时,服务器上的文件副本被重写。每隔几毫秒,两个客户端请求读取服务器上的文件。如果文件相同则什么也不会发生;如果不同,则更新两个客户的文件。

但是,对于所有这些方法,我不知道它们的效率安全,也因为我不知道其他聊天应用程序或社交与我使用的情况类似的确切系统。 我应该走哪条路? 我认为 Firebase 的优点最多,但我需要弄清楚缺点(主要使用两个数据库)的影响有多大。

mysql flutter firebase chat
© www.soinside.com 2019 - 2024. All rights reserved.