@罐子,
手机显示都是灰色的。
依赖这个插件 https://hu60.cn/q.php/bbs.topic.104689.html
之前可以显示机器人名字,现在只有图标。看不出哪个是哪个了。
展示文本有点臃肿。用久了就知道哪个是哪个了,哈哈
@老虎会游泳,不会。
我没攻击论坛,是你那个机器人脚本发起的攻击
@老虎会游泳,OK
@老虎会游泳,更新一下吧。新增两个参数:
--botxff string header will be sent to hu60api which value is the ws client's original ip (default "X-Forwarded-For") --wspu int websocket server connections limit per user (default 10)
@老虎会游泳,嗯
@rkonfj,所有 api 都是这样的吧
@老虎会游泳,超速后会出现
Retry-After
响应头的话,那没必要再返回 JSON 了
@老虎会游泳,api 超速时返回的也是 HTML 吗?
@老虎会游泳,明白
@老虎会游泳,明白了,你说的是
hu60bot
请求 hu60api 时的 ip。我会加一个参数,由管理员来指定这个头的 key, value就是用户的IP。这样hu60bot
就可以在这个 api 报超速时,返回ws客户端超速对吧?
hu60bot
怎么拿到客户端真实IP?x-real-ip
可以吗?
@老虎会游泳,明白了。
真实 IP 那个,可以从 nginx 传到 后端 吗?用 IP 来限速好点
@老虎会游泳,我还不太理解。你现在的架构应该是
nginx
转发流量到php-fpm
或hu60bot
吧?
你可以在HTTP请求中添加头信息,把速率限制转移给单个用户。
怎么加头信息?作为服务端是读取请求头吧?如果是在 nginx 之后,反代的时候 把网络的真实 ip 放在
x-real-ip
中,hu60bot
可以拿到了不是吗?
因为现在的超速都算在127.0.0.1头上了,所以大家都连不上。把真实IP填充在头信息里,我就可以把限速算在具体用户头上了。
你的超速不是 php 实现的吗?怎么会阻止 websocket 连接?
哦,明白了。超速限制是 php 实现的,不是 nginx ,所以
hu60bot
也需要实现
@老虎会游泳,为什么一个超速,其他用户无法连接?
hu60 API迅速达到上限,返回超速页面,导致后续没有任何人可以连上。
@老虎会游泳,怎么判定的?我要适配一下吗?
@老虎会游泳,再更新下。优化了 2 个问题:
- 主动查询在线用户时,只返回机器人
- 程序正常退出时标记所有 at 消息已读,防止再次启动时读取到已处理的消息
@老虎会游泳,做了一个简单的动态适配。现在应该可以适配任何屏幕和缩放比例了