简介
fiora
是一个有趣的开源聊天应用程式,它基于node.js
react
框架和socket.io
技术实现,部署起来非常简单,功能丰富。
GitHub地址:https://github.com/yinxin630/fiora
可创建群聊,加好友私聊,支持多种消息类型(如图片,文件,命令,表情包等)
安装与使用
官方文档已经足够详尽了,这里我就详细写一下文档中没提到或者写错的地方吧
配置文件
官方文档这里写错了,配置文件的文件名应该是.env
而不是.env2
,错这一个字符就会导致配置不生效
关于脚本
fiora
内置了命令行工具,但是它不是在你yarn start
后启动的程序中输入的,而是在fiora
根目录中执行命令的,执行命令时应该确保你的fiora
服务端在运行中
关于聊天发送过快导致的帐号封禁
经测试,默认新人在1分钟
内于群聊
中发送5条以上
内容就会触发封禁,就算你是管理员帐号也不成,照封不误
私聊的话更加严格,阈值是3条
文档中没有写如何配置封禁规则,就只能上手去改代码了。
经过分析源码后发现相关的封禁策略是写死在代码中的,代码位置如下
如下图所示,箭头指向的位置就是群聊封禁策略
代码文件目录:/fiora/packages/server/src/middlewares/frequency.ts
其中
MaxCallPerMinutes
指的是用户在群聊中每分钟最多能发多条聊天记录
NewUserMaxCallPerMinutes
指的是新用户在群聊中每分钟最多能发多条聊天记录
ClearDataInterval
指的是清除数据的周期
AutoSealDuration
指的是用户触发自动封禁时的封号时间,单位:分钟
如下图所示,箭头所指向的位置是私聊封禁策略
maxCallPerMinutes
指的是用户私聊时每分钟最大能发送多少条消息
改完代码后打包压缩上传到服务器,重新执行一遍编译安装流程即可
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 | 禁止用户撤回消息 |