Closed Miku39c closed 2 years ago
测试环境: 系统: win10 python环境: Anaconda3 (使用的是Anaconda3自带的python 3.9.12150.1013) 和 poetry
前提步骤:
测试步骤: 1. 重新启动mcl,mcl自动登录成功,然后进入bot主目录,在当前目录打开cmd,执行指令
pip install -r requirements.txt python main.py
bot也正常启动,但是bot接收不到我在群里发送的消息 (好友/群消息都不行)
2. 在1的基础上,先ctrl+c等待程序结束,然后关闭两个cmd窗口再重新打开mcl,接着在bot主目录打开cmd执行指令
conda activate env_qqbot pip install -r requirements.txt python main.py
3. 在2的基础上,先ctrl+c等待程序结束,然后关闭两个cmd窗口再重新打开mcl,接着在bot主目录打开cmd执行指令
poetry run pip install -r requirements.txt poetry run python main.py
我也试过更换数据库(mysql和sqlite)这两个,重新创建conda虚拟环境后再pip install -r requirements.txt,启动后问题依旧 这个问题的出现也很奇怪,最开始我用的测试步骤1,一切正常,后来关闭程序后重新打开出现bot接收不到消息后,我用了测试步骤3,没有这个问题了,但是不久后又出这个问题了,再后面我用了测试步骤2,又没问题了,直到今天早上,我测试bot功能发现mysql数据库连接错误,我百度查询说的是需要调高mysql数据库的超时时间,默认是8小时不使用就会销毁连接,所以bot使用数据库就产生了报错,我改了后,关闭两个程序窗口,再启动,又出现与前面一样的问题了,bot接收不到群消息,mcl可以接收到群消息并显示出来
后面我在bot群询问无果后,就用js写了与mcl建立ws连接的测试代码
var g_session = ""; var g_qq_ws; let verifyKey = "ServerPaw_Miku_39831"; let bot_qq = "649089368"; // 创建WebSocket 对象 g_qq_ws = new WebSocket("ws://localhost:23456/message?verifyKey=" + verifyKey + "&qq=" + bot_qq); g_qq_ws.onerror = function (error) { console.log('WS 连接错误!', error) } g_qq_ws.onopen = function () { //连接成功时,触发事件 console.log("WS 连接已建立..."); //请求参数 var param = { "syncId": parseInt(Math.random()*10000)+1, // 消息同步的字段 "command": "sendGroupMessage", // 命令字 "subCommand": null, // 子命令字, 可空 "content": {} // 命令的数据对象, 与通用接口定义相同 }; var msgArray = [ { "type":"Plain", "text": "Hello" + "\n" }, { "type":"Plain", "text": "World" + "\n" } ]; param.content = { "sessionKey": g_session, "target": 0, "messageChain": msgArray }; param.content.target = "488083381"; g_qq_ws.send(JSON.stringify(param)); // 使用 send() 方法发送数据 console.log("WS 数据发送中... " + JSON.stringify(param)); } g_qq_ws.onmessage = function (event) { //接收到服务端响应的数据时,触发事件 var data = JSON.parse(event.data); console.log("WS 收到数据..." + JSON.stringify(data)); if(data.code == 0 || data.code == undefined){ if(g_session == ""){ g_session = data.data.session; console.log("session: " + g_session); } console.log("操作成功!"); }else{ console.log("操作失败!"); } } g_qq_ws.onclose = function () { // 断开 web socket 连接成功触发事件 console.log("WS 连接已关闭!"); };
结果如下,成功发送了群消息,mcl也显示出来了(1个发送,1个接收),但是bot依然接收不到群消息
15:20:07 启动了bot 15:20:31 mcl收到了我手动发送的消息
但是bot这边就没反应,无论是 1.我两个程序都重开,mcl正常,bot收不到数据 2.两个程序都关闭,启动mcl,手动在qq上发送群消息+好友消息,mcl一切正常,再启动bot,bot也收不到数据 3.在2的基础上关闭bot,再启动,bot依然收不到数据
然后我手动在qq上发送群消息,发现mcl接收到了,但是网页端ws连接还是接收不到群消息,bot也接收不到群消息 我发现之前我手动用js代码建立ws发送后,发送了群消息,也接收到了对应的群消息发送成功了(状态/返回值),但是接收不到正常的消息 (就是我在qq上手动在qq群里发送了消息,mcl可以接收到消息,bot接收不到,js代码也接收不到)
也就是说网页端ws代码发送群消息成功了后,就再也收不到其他消息了,和bot是一样的,但是mcl是有接收到新消息并显示出来的,问题出在mcl向bot分发消息上
最后我再次用js代码发送群消息进行验证,结果是一致的
又正常了,后面显示第三方客户端,解除后再登录,现在卡设备锁了,无论如何验证,关闭设备锁窗口后,设备锁窗口会再次弹出,导致现在无法登录,换号也出现了同样的问题
测试环境: 系统: win10 python环境: Anaconda3 (使用的是Anaconda3自带的python 3.9.12150.1013) 和 poetry
前提步骤:
测试步骤: 1. 重新启动mcl,mcl自动登录成功,然后进入bot主目录,在当前目录打开cmd,执行指令
bot也正常启动,但是bot接收不到我在群里发送的消息 (好友/群消息都不行)
2. 在1的基础上,先ctrl+c等待程序结束,然后关闭两个cmd窗口再重新打开mcl,接着在bot主目录打开cmd执行指令
bot也正常启动,但是bot接收不到我在群里发送的消息 (好友/群消息都不行)
3. 在2的基础上,先ctrl+c等待程序结束,然后关闭两个cmd窗口再重新打开mcl,接着在bot主目录打开cmd执行指令
bot也正常启动,但是bot接收不到我在群里发送的消息 (好友/群消息都不行)
后面我在bot群询问无果后,就用js写了与mcl建立ws连接的测试代码
结果如下,成功发送了群消息,mcl也显示出来了(1个发送,1个接收),但是bot依然接收不到群消息
15:20:07 启动了bot 15:20:31 mcl收到了我手动发送的消息
然后我手动在qq上发送群消息,发现mcl接收到了,但是网页端ws连接还是接收不到群消息,bot也接收不到群消息 我发现之前我手动用js代码建立ws发送后,发送了群消息,也接收到了对应的群消息发送成功了(状态/返回值),但是接收不到正常的消息 (就是我在qq上手动在qq群里发送了消息,mcl可以接收到消息,bot接收不到,js代码也接收不到)
也就是说网页端ws代码发送群消息成功了后,就再也收不到其他消息了,和bot是一样的,但是mcl是有接收到新消息并显示出来的,问题出在mcl向bot分发消息上
最后我再次用js代码发送群消息进行验证,结果是一致的