使用 Node.js、WebSockets 和 MySQL 构建的 Flutter 聊天应用程序
一个支持使用 WebRTC 进行实时音视频通话的 Flutter 聊天应用程序,使用 Node.js、MySQL 和 WebSockets 构建。
这是一个不包含 Firebase 的 Flutter 聊天应用程序,但如果它不适合您,它仍然可以作为构建您的 Flutter 聊天 UI 的模板示例。
Node.js 服务器使用 Askless 通过 WebSockets 将数据更改流式传输到 Flutter 应用程序,因此 Flutter 小部件会实时更新。
由于此项目使用 TypeORM,您可以轻松更改数据库,使其成为带有 PostgreSQL 的 Flutter 聊天应用程序,而不是带有 MySQL。
文本消息也使用 Hive 保存在用户设备上,因此用户无需连接互联网即可查看收到的消息。
commented_askless_example.mp4
?上面的视频包含音频,请点击右侧开启
入门
-
进入
nodejs_websocket_backend目录,运行npm install安装依赖项。 -
Node.js 服务器使用 TypeORM,TypeORM 支持多种数据库,如 MySQL、PostgreSQL、MariaDB、SQLite、MS SQL Server、Oracle、SAP Hana 和 WebSQL。因此,第一步是配置您选择的数据库。在
nodejs_websocket_backend/src/environment/db.ts中添加您的 **数据库配置**,请勿将此文件提交到您的存储库。 -
在
nodejs_websocket_backend/src/environment/jwt-private.key中,用您自己的随机文本替换 JWT 私钥,同样请勿将此文件提交到您的存储库。 -
通过运行命令
npm run dev来启动您的 node.js 后端服务器,它会在控制台(本地网络)中显示其 URL。 -
转到
flutter_app/lib/core/data/data_sources/connection_remote_ds.dart中用 Flutter 创建的应用程序,并将serverUrl替换为您 node.js 后端正在运行的 URL 和端口。 -
转到
flutter_app/lib/environment.dart并用您自己的随机文本替换localStorageEncryptionKey。同样不要将此文件提交到您的存储库。 -
运行
flutter pub get获取 Flutter 依赖项。 -
在您的设备上运行 Flutter 项目?
问题
欢迎就以下内容提出问题。
-
❔ 问题
-
? 建议
-
? 潜在的 bug