Open zhaodice opened 1 year ago
mirai本身没有任何错误输出,只能从EncryptService的日志查看原因 这个问题优先级不高,因为我可以直接判断是否是空的buffer和cmd,拦截这个异常
channel report 包有时候是空的
channel report 包有时候是空的
是,但空包不应该commandName
或cmd
也是空的吧
本来就是需要根据 cmd_white_list
进行过滤
unidbg-fetch-qsign 甚至都没写这个 api
我对接的时候还得从 magic-signer-guide 找补
本来就是需要根据
cmd_white_list
进行过滤 unidbg-fetch-qsign 甚至都没写这个 api 我对接的时候还得从 magic-signer-guide 找补
~事实上是因为模拟调用的fekit,setCmdWhiteListChangeCallback回调,【根本】不执行,所以qsign也没有white list,似乎是缺少和服务器交互的包,这数据应该是从服务器派发的~ 当我没说,调用ChannelManager.getCmdWhiteList() 就可以拿了,看样子确实没实现
问题描述
我写了个log,实时监控
qSecurityGetSign
,以及channel.sendMessage
,发现某些情况下qSecurityGetSign
的commandName
参数和payload
为空(值得注意的是sequenceId为正常数字40180)channel.sendMessage
的返回值也不再是null,但它的对象的cmd
,buffer
字段为空,callbackId是0 因为异常的空参数导致签名服务器重启,签名服务器重启后重新收到了正确的签名请求(此时sequenceId变成了30984)复现
难以复现,是在安卓系统以锁屏状态长时间运行,偶然出现的。
mirai-core 版本
2.15.0
bot-protocol
ANDROID_PAD
其他组件版本
无
系统日志
网络日志
No response
补充信息
No response