UniApp + Vue 3
TypeScript · HTML · SCSS
同一 UniApp 工程构建 H5 与微信小程序,Vue 3 组织页面与组件,TypeScript 描述接口和业务类型,Pinia 管理登录、会话与通话状态。
结构优势复用页面与业务逻辑,同时保留小程序权限、浏览器媒体等平台差异的处理入口。
技术与优势
客户端、管理后台与业务服务各司其职。以下框架与语言来自当前项目的实际工程与依赖配置。
网页、小程序、App 与桌面客户端,按使用场景选择合适的工程。
TypeScript · HTML · SCSS
同一 UniApp 工程构建 H5 与微信小程序,Vue 3 组织页面与组件,TypeScript 描述接口和业务类型,Pinia 管理登录、会话与通话状态。
结构优势复用页面与业务逻辑,同时保留小程序权限、浏览器媒体等平台差异的处理入口。
Dart
Flutter 构建手机和桌面客户端;Riverpod 管理状态,GoRouter 组织页面导航,Dio 调用业务接口。平台桥接处理原生 SDK、设备权限与桌面集成。
结构优势共享 Dart 界面与业务模块,减少重复维护;需要原生能力时,通过平台适配扩展。
Vue 3 · TypeScript
基于 Vben Admin 组织管理布局、路由和权限,Element Plus 提供表格、表单与弹窗组件,承载用户、群组、运营、钱包和系统配置页面。
结构优势统一管理页面的交互方式,便于扩展表格查询、配置表单与角色访问控制。
业务 API、实时辅助服务与数据存储分层组织。
PHP
服务端在 ThinkPHP 5 和 FastAdmin 基础上承载账号、好友、群管理、动态、钱包及系统配置接口。独立 Vue 管理后台通过业务接口访问这些能力。
结构优势客户端展示与服务端规则分开维护,群角色、业务开关和外部服务配置在服务端集中管理。
JavaScript
独立 typing-ws 服务处理单聊“正在输入”事件。业务后端验证身份与好友关系后签发短期票据,WebSocket 服务再进行票据校验。
结构优势把短时输入状态与持久聊天内容分开处理;该服务不保存消息内容或输入历史。
SQL · Nginx 配置
MySQL 存储业务数据,Redis 用于相应缓存和限流场景;项目提供 SQL 迁移与 Nginx 部署参考,将网页、业务 API 和 WebSocket 入口分别组织。
结构优势业务数据与缓存用途清晰,数据库变更有迁移记录,便于部署与后续维护。
Android 工程使用 Kotlin;iOS 与 macOS 使用 Swift;Windows 桌面扩展使用 C++。主要客户端业务仍由 Dart 编写。产品展示官网本身采用 HTML、CSS 与 JavaScript,可直接静态部署。
通信 SDK 承担消息和音视频能力,业务服务负责账号、规则与管理。
H5、小程序、App 与 PC
用户、群组、运营与配置
账号鉴权、群规则、业务配置
业务数据、缓存与限流
客户端凭业务后端签发的短期票据连接输入状态服务。该服务仅转发临时输入状态,不写入消息内容或输入历史。
客户端接入相应 SDK,由服务端提供必要配置;IM 消息及音视频使用各自的通信链路,按平台与服务配置启用。
从多端复用、业务分工到运营配置,围绕实际使用与后续维护说明价值。
UniApp 覆盖 H5 与小程序,Flutter 承载手机和桌面工程。共享业务模块有助于减少重复开发,平台差异通过适配层处理。
用户客户端、管理后台与 PHP 业务 API 独立组织,便于分别迭代展示体验、运营入口和服务端规则。
消息使用网易云信 IM,通话使用对应 CallKit 与 NERTC 能力,业务代码聚焦会话、通话状态和产品交互。
成员角色、入群审批、公告、禁言、群策略与进阶规则均有对应入口,方便按群的管理需求配置。
客户端与后台开关、角色权限和服务配置共同控制功能范围,可按平台、账号与业务阶段逐项开放。
工程包含 TypeScript 类型检查、Flutter 测试、后端回归脚本及 SQL 迁移,便于持续检查关键业务和管理数据变更。
本文描述当前源码结构。不同平台的开放能力以实际版本为准;通信性能、并发规模及生产稳定性需要在真实部署环境中测试,群通话尚未开放。