
即时通讯后端前端移动开发【免费下载链接】fioraAn interesting open source chat application. Developed with node.js, mongoDB, socket.io and react项目地址https://gitcode.com/gh_mirrors/fi/fiora点击查看免费下载本指南以 Fiora 官方入门文档Getting-Start为骨架结合仓库源码与配套文档带你理解这款基于 Node.js、MongoDB、React 与 Socket.IO 构建的开源聊天应用的核心功能、整体目录结构、配置体系与运行方式并掌握参与其开发贡献的标准流程。Fiora 是一款有趣的开源聊天应用技术栈为Node.jsKoa、MongoDB、React与Socket.IO。它始于 2015-11-04 的一个早期项目目前以 monorepoLerna方式组织包含后端、Web 客户端、App 客户端与文档站等多个包。阅读本文后你将了解它的功能全景、代码目录如何组织、服务端与客户端如何通过环境变量完成配置以及如何从源码启动它、如何通过 Docker 部署它并掌握提交代码贡献的标准流程。本文基于仓库中 Getting-Start.md 与配套的 INSTALL.md、Config.md 整理而成。功能全景Fiora 官方文档列出了七项核心功能覆盖了从账号体系到消息形态、从通知到个性化定制的完整聊天应用能力注册与登录注册账号并登录后你的数据可以长久保存登录凭证基于 JWT Token默认有效期 30 天。群组交流可以加入现有群组也可以创建自己的群组与大家交流默认每个用户最多创建 3 个群组由服务端MaxGroupCount控制。私聊与好友可以与任意人私聊并添加对方为好友。丰富的消息类型支持文本 / 表情 / 图片 / 代码 / 文件 / 命令等多种消息还可以搜索表情包仓库 assets/images/huaji 下内置了大量表情图片配合getRandomHuaji等工具使用。消息通知收到新消息时推送通知可以自定义通知铃声还可以把消息朗读出来。主题定制选择喜欢的主题并可自定义壁纸与主题颜色。管理员体系设置管理员来管理用户管理员拥有更多权限。运行截图Fiora 官方文档提供了 PC 端与移动端的运行截图直观展示其界面形态PC 端截图screenshot-pc.png展示浏览器中的完整聊天界面布局。移动端截图screenshot-phone.png展示手机浏览器中的窄屏适配效果。目录结构解析Fiora 是一个典型的前后端一体 文档站 App 的 monorepo 项目。官方文档给出了顶层目录结构结合仓库当前实际布局可以对照理解每一部分的作用目录 / 文件作用bin服务端脚本如doctor环境自检脚本buildwebpack 构建配置clientWeb 客户端对应当前仓库 packages/webconfig应用配置服务端与客户端配置见 packages/configdist客户端构建输出目录docs文档对应当前仓库 packages/docs基于 Docusaurus 构建支持英文与简体中文public服务端静态资源目录server服务端对应当前仓库 packages/servertest单元测试typesTypeScript 类型定义utils工具函数对应当前仓库 packages/utils包含时间、URL、压缩图片、随机头像等通用方法Dockerfile/docker-compose.yamlDocker 部署相关文件jest.config.js/jest.setup.js/jest.transformer.jsJest 测试配置lerna.jsonLerna monorepo 管理配置package.jsonnpm 脚本与依赖管理tsconfig.jsonTypeScript 编译配置yarn.lockYarn 依赖锁定文件从根目录 package.json 可以看出Fiora 使用 Lerna 组织多包yarn start实际执行npx lerna run start --stream会并行启动所有包的 start 脚本yarn dev:server、yarn dev:web、yarn build:web、yarn test、yarn ts-check等则分别对应开发、构建、测试与类型检查。运行与部署方式官方入门文档聚焦于功能与结构完整的运行说明位于配套的 INSTALL.md。Fiora 提供源码运行与 Docker 运行两种方式。环境准备运行 Fiora 需要三个基础组件Node.js推荐使用 v14 LTS 版本根目录 package.json 的engines字段声明node 14建议通过 nvm 安装管理。MongoDB作为主数据库默认连接地址为mongodb://localhost:27017/fiora。Redis作为缓存/会话依赖默认localhost:6379。官方文档建议在 Linux 或 macOS 系统上运行。从源码运行生产模式# 1. 克隆项目master 分支 git clone https://github.com/yinxin630/fiora.git -b master # 2. 安装 yarn如已安装可跳过 npm install -g yarn # 3. 安装项目依赖根目录 package.json 的 install 脚本会触发 lerna bootstrap yarn install # 4. 构建客户端 yarn build:web # 5. 配置 JwtSecret写入根目录 .env 文件将 string 替换为一段随机密钥文本 echo JwtSecretstring .env # 6. 启动服务端 yarn start # 7. 浏览器打开 http://[ip]:[port]默认端口 9200例如 http://127.0.0.1:9200后台运行推荐 pm2直接yarn start在 SSH 断开后会停止运行官方文档推荐使用 pm2 守护进程# 安装 pm2 npm install -g pm2 # 使用 pm2 运行 fiora pm2 start yarn --name fiora -- start # 查看 pm2 应用状态 pm2 ls # 查看 fiora 日志 pm2 logs fiora开发模式运行开发模式下服务端与客户端分离启动支持热更新# 1. 启动服务端lerna 会进入 packages/server 运行 dev:server yarn dev:server # 2. 启动客户端lerna 会进入 packages/web 运行 dev:web yarn dev:web # 3. 浏览器打开 http://localhost:8080Docker 部署Fiora 支持两种 Docker 方式。直接从 DockerHub 镜像运行的方式如下# 拉取基础组件 docker pull mongo docker pull redis docker pull suisuijiang/fiora # 创建虚拟网络 docker network create fiora-network # 运行 MongoDB docker run --name fioradb -p 27017:27017 --network fiora-network mongo # 运行 Redis docker run --name fioraredis -p 6379:6379 --network fiora-network redis # 运行 Fiora通过环境变量注入数据库地址与 Redis 主机 docker run --name fiora -p 9200:9200 --network fiora-network \ -e Databasemongodb://fioradb:27017/fiora \ -e RedisHostfioraredis suisuijiang/fiora本地构建镜像的方式则是克隆仓库后执行docker-compose build --no-cache --force-rm再docker-compose up仓库根目录已提供 docker-compose.yaml。配置体系环境变量优先Fiora 的配置分为服务端与客户端两部分官方文档强调相比直接修改配置文件更推荐使用环境变量。在 Fiora 根目录创建.env文件逐行写入keyvalue例如修改端口号写入Port8888即可覆盖默认配置。服务端配置位于 packages/config/server.ts对应文档中的config/server.ts客户端配置位于 packages/config/client.ts对应文档中的config/client.ts。注意修改服务端配置需要重启应用修改客户端配置需要重新构建客户端。服务端配置项官方文档给出的服务端配置表结合 packages/config/server.ts 的源码实现每个配置项均通过env.XXX读取未设置时回退到默认值Key类型默认值说明Hoststring本机 IP后端服务主机地址源码中用ip.address()获取可能为局域网地址Portnumber9200后端服务端口Databasestringmongodb://localhost:27017/fioraMongoDB 连接地址RedisHoststringlocalhostRedis 主机RedisPortnumber6379Redis 端口JwtSecretstringjwtSecretJWT Token 加密密钥生产环境必须修改以保证安全MaxGroupCountnumber3每个用户最多可创建的群组数AllowOriginstringnull允许的客户端来源列表多个值用逗号分隔为 null 时允许所有来源源码中env.AllowOrigin.split(,)Socket.IO 的 CORS 配置见下TokenExpiresTimenumber259200000030 天登录 Token 过期时间源码中为1000 * 60 * 60 * 24 * 30Administratorstring管理员 userId 列表多个值用逗号分隔源码中env.Administrator.split(,)DisableRegisterbooleanfalse是否禁用注册DisableCreateGroupbooleanfalse是否禁用创建群组ALIYUN_OSSbooleanfalse是否启用阿里云 OSS 存储ACCESS_KEY_IDstring阿里云 OSS AccessKey IDACCESS_KEY_SECRETstring阿里云 OSS AccessKey SecretROLE_ARNstring阿里云 OSS RoleARNREGIONstring阿里云 OSS 地域例如oss-cn-zhangjiakouBUCKETstring阿里云 OSS Bucket 名称ENDPOINTstring阿里云 OSS 自定义域名例如cdn.suisuijiang.com从源码看布尔型配置项如DisableRegister、DisableCreateGroup、ALIYUN_OSS在 packages/config/server.ts 中通过env.XXX true进行字符串比较解析因此设置时应写DisableRegistertrue这样的形式。此外AllowOrigin直接影响 Socket.IO 服务端的 CORS 配置——在 packages/server/src/app.ts 中origin取值为config.allowOrigin || *且开启credentials: true。客户端配置项Key类型默认值说明Serverstring/客户端连接的服务端地址开发模式下默认为//localhost:9200MaxImageSizenumber31457283MB客户端可上传的最大图片大小MaxBackgroundImageSizenumber52428805MB客户端可上传的最大背景图大小MaxAvatarSizenumber15728641.5MB客户端可上传的最大头像大小MaxFileSizenumber1048576010MB客户端可上传的最大文件大小DefaultThemestringcool默认主题Soundstringdefault默认通知铃声TagColorModestringfixedColor默认标签颜色模式FrontendMonitorAppIdstring前端监控应用 ID为空则不启用监控DisableDeleteMessagebooleanfalse是否禁用用户撤回消息源码注释说明管理员始终能撤回任何消息需要说明的是packages/config/client.ts 中的默认值以MB常量表达图片与背景图默认 5MB、头像默认 1.5MB、文件默认 10MB与文档表格中记录的数值一致DisableDeleteMessage同样通过字符串比较解析。服务端启动流程与源码印证从 packages/server/src/main.ts 可以看到服务端启动的关键流程若启动参数包含--doctor先执行环境自检脚本doctor()调用initMongoDB()初始化 MongoDB 连接检查是否存在默认群组isDefault: true不存在则自动创建名为fiora的默认群通过app.listen(config.port, ...)启动 HTTP 服务并清空 Socket 表的历史连接数据最后打印监听地址http://localhost:${config.port}。服务端基于 Koa 构建 HTTP 层并挂载 Socket.IO 实时通信层packages/server/src/app.ts。Socket 连接建立后依次经过seal封禁、isLogin登录校验、isAdmin管理员校验、frequency频率限制四个中间件再通过registerRoutes将用户、群组、消息、系统、通知、历史记录等路由注册到 Socket 事件上——这解释了官方文档中设置管理员来管理用户与多种消息类型等功能的服务端支撑。相关路由实现位于 packages/server/src/routes管理员校验中间件见 packages/server/src/middlewares/isAdmin.ts。贡献代码流程Fiora 欢迎社区贡献。如果你想添加功能或修复 Bug请遵循官方文档给出的标准流程Fork 本仓库并将 fork 后的仓库克隆到本地安装依赖yarn install修改代码并确认无 Bug提交代码如果 ESLint 有报错请修复后再次提交根目录 package.json 提供了yarn lint脚本执行eslint ./ --ext js,jsx,ts,tsx --ignore-pattern .eslintignore --cache --fix创建一个 Pull Request。仓库根目录的 package.json 还提供了yarn testJest 单元测试与yarn ts-checktsc --noEmit类型检查两个质量保障命令提交前运行可确保代码质量测试覆盖服务端中间件见 packages/server/test与状态管理 reducer见 packages/web/test/state等关键逻辑。结语Fiora 以一个简洁的入门文档概括了聊天应用的全貌从功能特性、目录结构到贡献流程。配合 INSTALL.md 与 Config.md 的完整操作说明以及本仓库源码packages/server、packages/web、packages/config、packages/utils提供的实现细节你可以快速完成本地部署、生产配置与二次开发。对于希望深入探索实时聊天应用架构的开发者而言Fiora 的 Socket.IO Koa MongoDB React 组合是一个结构清晰、易于阅读的参考实现。赞分享即时通讯后端前端移动开发【免费下载链接】fioraAn interesting open source chat application. Developed with node.js, mongoDB, socket.io and react项目地址https://gitcode.com/gh_mirrors/fi/fiora点击查看免费下载相关推荐使用 Flower 与 Hugging Face Transformers 联邦微调大语言模型IMDB 情感分类快速入门指南使用 Flower 与 Hugging Face Transformers 联邦微调大语言模型IMDB 情感分类快速入门指南 本指南基于 Flower 官方即时通讯后端前端移动开发Fiora 开源聊天应用全解析基于 Node.js、React 与 Socket.IO 的即时通讯系统部署指南Fiora 开源聊天应用全解析基于 Node.js、React 与 Socket.IO 的即时通讯系统部署指南 Fiora 是一款基于 Node.js、Rea即时通讯后端前端移动开发开源项目文档建设Fiora官网与教程编写规范开源项目文档建设Fiora官网与教程编写规范 在开源社区中 Fiora 作为一个基于Node.js、MongoDB、Socket.io和React技术栈开发即时通讯后端前端移动开发上一篇终极GitHub加速解决方案告别龟速下载实现10倍效率提升下一篇终极指南如何彻底卸载Windows系统中的Microsoft Edge浏览器创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考