使用 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

?上面的视频包含音频,请点击右侧开启

入门

  1. 进入 nodejs_websocket_backend 目录,运行 npm install 安装依赖项。

  2. Node.js 服务器使用 TypeORM,TypeORM 支持多种数据库,如 MySQL、PostgreSQL、MariaDB、SQLite、MS SQL Server、Oracle、SAP Hana 和 WebSQL。因此,第一步是配置您选择的数据库。在 nodejs_websocket_backend/src/environment/db.ts 中添加您的 **数据库配置**,请勿将此文件提交到您的存储库。

  3. nodejs_websocket_backend/src/environment/jwt-private.key 中,用您自己的随机文本替换 JWT 私钥,同样请勿将此文件提交到您的存储库。

  4. 通过运行命令 npm run dev 来启动您的 node.js 后端服务器,它会在控制台(本地网络)中显示其 URL。

  5. 转到 flutter_app/lib/core/data/data_sources/connection_remote_ds.dart 中用 Flutter 创建的应用程序,并将 serverUrl 替换为您 node.js 后端正在运行的 URL 和端口。

  6. 转到 flutter_app/lib/environment.dart 并用您自己的随机文本替换 localStorageEncryptionKey。同样不要将此文件提交到您的存储库。

  7. 运行 flutter pub get 获取 Flutter 依赖项。

  8. 在您的设备上运行 Flutter 项目?

问题

欢迎就以下内容提出问题。

  • ❔ 问题

  • ? 建议

  • ? 潜在的 bug

许可证

MIT

联系我

? [email protected]

GitHub

查看 Github