搭建一个有趣的聊天室[fiora]

搭建一个有趣的聊天室[fiora]

hash070 904 2022-06-13

简介

fiora是一个有趣的开源聊天应用程式,它基于node.js react 框架和socket.io技术实现,部署起来非常简单,功能丰富。

GitHub地址:https://github.com/yinxin630/fiora

可创建群聊,加好友私聊,支持多种消息类型(如图片,文件,命令,表情包等)

PC Phone

安装与使用

官方文档已经足够详尽了,这里我就详细写一下文档中没提到或者写错的地方吧

配置文件

官方文档这里写错了,配置文件的文件名应该是.env而不是.env2,错这一个字符就会导致配置不生效

image-20220614090022663

关于脚本

fiora内置了命令行工具,但是它不是在你yarn start后启动的程序中输入的,而是在fiora根目录中执行命令的,执行命令时应该确保你的fiora服务端在运行中

关于聊天发送过快导致的帐号封禁

经测试,默认新人在1分钟内于群聊中发送5条以上内容就会触发封禁,就算你是管理员帐号也不成,照封不误

私聊的话更加严格,阈值是3条

文档中没有写如何配置封禁规则,就只能上手去改代码了。

经过分析源码后发现相关的封禁策略是写死在代码中的,代码位置如下

如下图所示,箭头指向的位置就是群聊封禁策略

代码文件目录:/fiora/packages/server/src/middlewares/frequency.ts

其中

MaxCallPerMinutes指的是用户群聊中每分钟最多能发多条聊天记录
NewUserMaxCallPerMinutes指的是新用户在群聊中每分钟最多能发多条聊天记录
ClearDataInterval指的是清除数据的周期

AutoSealDuration指的是用户触发自动封禁时的封号时间,单位:分钟

image-20220614090940099

如下图所示,箭头所指向的位置是私聊封禁策略

maxCallPerMinutes指的是用户私聊时每分钟最大能发送多少条消息

image-20220614091217145

改完代码后打包压缩上传到服务器,重新执行一遍编译安装流程即可

Others

配置文件模板

包含了常用配置项目

Database="mongodb://localhost:27017/fiora"
RedisHost="localhost"
RedisPort="6379"
JwtSecret="QJs4yfvsfaLfsaUf5"
MaxGroupCount="10"
Administrator="uid1,uid2"
DisableCreateGroup="false"

配置项目的官方文档

服务端配置

修改服务端配置需要重启应用

Key 类型 默认值 描述
Host string your ip 服务端 host
Port number 9200 服务端端口号
Database string mongodb://localhost:27017/fiora mongoDB 数据库地址
RedisHost string localhost redis 地址主机名
RedisPort number 6379 redis 端口
JwtSecret string jwtSecret (推荐修改它来保证安全性) jwt token 加密 secret
MaxGroupCount number 3 用户最大可以创建的群组个数
AllowOrigin string null 允许的客户端 origin 列表, null 时允许所有 origin 连接, 多个值逗号分割
tokenExpiresTime number 2592000000 (30 天) 登陆 token 过期时间
Administrator string ‘’ 管理员用户 id 列表, 多个值逗号分割
DisableRegister boolean false 禁止注册账号
DisableCreateGroup boolean false 禁止创建群组
ALIYUN_OSS boolean false 启用阿里云 OSS
ACCESS_KEY_ID string ‘’ 阿里云 OSS access key id. 参考: https://help.aliyun.com/document_detail/48699.html
ACCESS_KEY_SECRET string ‘’ 阿里云 OSS access key secret. 参考和 ACCESS_KEY_ID 相同
ROLE_ARN string ‘’ 阿里云 OSS RoleARN. 参考: https://help.aliyun.com/document_detail/28649.html
REGION string ‘’ 阿里云 OSS 地域. 例如: oss-cn-zhangjiakou
BUCKET string ‘’ 阿里云 OSS bucket 名称
ENDPOINT string ‘’

客户端配置

修改客户端配置需要重新构建客户端,即重新yarn bulid:web一遍

Key 类型 默认值 描述
Server string / 客户端要连接的服务端地址
MaxImageSize number 3145728 (3MB) 客户端可以上传的最大图片大小
MaxBackgroundImageSize number 5242880 (5MB) 客户端可以上传的最大背景图大小
MaxAvatarSize number 1572864 (1.5MB) 客户端可以上传的最大头像图片大小
MaxFileSize number 10485760 (10MB) 客户端可以上传的最大文件大小
DefaultTheme string cool 默认主题
Sound string default 默认通知音
TagColorMode string fixedColor 默认标签颜色模式
FrontendMonitorAppId string fixedColor 岳鹰监控 appId https://yueying.effirst.com/index
DisableDeleteMessage boolean false 禁止用户撤回消息