wechaty / puppet-supports

Wechaty Puppet Services (WPS)
https://wechaty.js.org/docs/puppet-services/
Apache License 2.0
33 stars 4 forks source link

[BUG]WorkPro: bot.logout() 报错 #372

Closed whonem closed 7 months ago

whonem commented 8 months ago

运行 bot.logout() 后报错,想退出当前帐号,用其它帐号登录 。调用logout方法报错 13:03:31 INFO PuppetSkeleton start() 13:03:31 INFO PuppetService start() instanciating GrpcManager ... 13:03:31 INFO PuppetService start() instanciating GrpcManager ... done 13:03:31 INFO PuppetService start() setting up bridge grpc event stream ... 13:03:31 INFO PuppetService start() setting up bridge grpc event stream ... done 13:03:31 INFO PuppetService start() starting grpc manager... /Users/lianggao/Documents/code/wxRobot/node_modules/@juzi/wechaty/src/wechaty-mixins/puppet-mixin.ts:54 throw new Error('NOPUPPET') ^ Error: NOPUPPET at WechatyImpl.get puppet [as puppet] (/Users/lianggao/Documents/code/wxRobot/node_modules/@juzi/wechaty/src/wechaty-mixins/puppet-mixin.ts:54:15) at WechatyImpl.logout (/Users/lianggao/Documents/code/wxRobot/node_modules/@juzi/wechaty/src/wechaty-mixins/login-mixin.ts:84:18) at Object. (/Users/lianggao/Documents/code/wxRobot/index.ts:93:5) at Module._compile (node:internal/modules/cjs/loader:1376:14) at Module.m._compile (/Users/lianggao/Documents/code/wxRobot/node_modules/ts-node/src/index.ts:1618:23) at Module._extensions..js (node:internal/modules/cjs/loader:1435:10) at Object.require.extensions. [as .ts] (/Users/lianggao/Documents/code/wxRobot/node_modules/ts-node/src/index.ts:1621:12) at Module.load (node:internal/modules/cjs/loader:1207:32) at Function.Module._load (node:internal/modules/cjs/loader:1023:12) at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:135:12)

su-chang commented 8 months ago

请提供wechaty相关依赖包的版本号及调用代码片段。

whonem commented 7 months ago

"@juzi/wechaty": "^1.0.66", bot.l0gout()

su-chang commented 7 months ago

把相关服务升级到最新版本,然后调用logout看看有啥报错吧。

npm install @juzi/wechaty@latest

whonem commented 7 months ago

升级了。版本为1.0.95。再次调用bot.logout().报以下错误: lianggao@liangdeMacBook-Pro wxRobot % npm run yun Debugger attached.

workpro-getting-started@1.0.0 yun node ./dist/index.js

Debugger attached. Waiting for the debugger to disconnect... /Users/lianggao/Documents/code/wxRobot/node_modules/@juzi/wechaty/dist/cjs/src/wechaty-mixins/puppet-mixin.js:50 throw new Error('NOPUPPET'); ^

Error: NOPUPPET at get puppet [as puppet] (/Users/lianggao/Documents/code/wxRobot/node_modules/@juzi/wechaty/dist/cjs/src/wechaty-mixins/puppet-mixin.js:50:23) at WechatyImpl.logout (/Users/lianggao/Documents/code/wxRobot/node_modules/@juzi/wechaty/dist/cjs/src/wechaty-mixins/login-mixin.js:68:24) at Object. (/Users/lianggao/Documents/code/wxRobot/dist/index.js:144:5) at Module._compile (node:internal/modules/cjs/loader:1376:14) at Module._extensions..js (node:internal/modules/cjs/loader:1435:10) at Module.load (node:internal/modules/cjs/loader:1207:32) at Module._load (node:internal/modules/cjs/loader:1023:12) at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:135:12) at node:internal/main/run_main_module:28:49

Node.js v20.11.0 Waiting for the debugger to disconnect... lianggao@liangdeMacBook-Pro wxRobot % WechatIMG249

su-chang commented 7 months ago

先确认下调用完logout()手机端是否离线了?

其次最好把你调用部分的相关代码截图下,并且确认下是否监听了logout事件

whonem commented 7 months ago

没有监听logout事件。 代码如下 : async function prclogot(){ await bot.logout() } //bot.start() prclogot()

whonem commented 7 months ago

你能给我一段登出的DEMO么,我报错后,手机端没有下线。

su-chang commented 7 months ago

调用logout前,bot仍然需要start

whonem commented 7 months ago

这个我也试了, bot.start() bot.stop() prclogot() 这个也试了。stop可以正常停止,就是logout报错

su-chang commented 7 months ago

大概给你个示例,你看看,启动后根据发送的文本内容触发退出登录操作。

const text = message.text()
switch (text) {
    case 'logout':
      await bot.logout()
      break
  ...
}
whonem commented 7 months ago

async function start(){ await bot.start() await bot.logout() } start() 这样的代码执行出现如下报错: lianggao@liangdeMacBook-Pro wxRobot % npm run start Debugger attached.

workpro-getting-started@1.0.0 start ts-node index.ts

Debugger attached. 17:40:52 INFO PuppetSkeleton start() 17:40:52 INFO PuppetService start() instanciating GrpcManager ... 17:40:52 INFO PuppetService start() instanciating GrpcManager ... done 17:40:52 INFO PuppetService start() setting up bridge grpc event stream ... 17:40:52 INFO PuppetService start() setting up bridge grpc event stream ... done 17:40:52 INFO PuppetService start() starting grpc manager... /Users/lianggao/Documents/code/wxRobot/node_modules/deferred-leveldown/deferred-leveldown.js:49 return callback(err || new Error('Database is not open')) ^ Error [OpenError]: IO error: lock /Users/lianggao/.wechaty/wechaty-puppet-service/puppet_workpro_2d585137073d47b19772e536ee9bbdb7/v1.0/miscellaneous/LOCK: Resource temporarily unavailable at /Users/lianggao/Documents/code/wxRobot/node_modules/levelup/lib/levelup.js:127:23 at /Users/lianggao/Documents/code/wxRobot/node_modules/abstract-leveldown/abstract-leveldown.js:41:14 at onopen (/Users/lianggao/Documents/code/wxRobot/node_modules/deferred-leveldown/deferred-leveldown.js:49:14) at /Users/lianggao/Documents/code/wxRobot/node_modules/abstract-leveldown/abstract-leveldown.js:41:14 at /Users/lianggao/Documents/code/wxRobot/node_modules/abstract-leveldown/abstract-leveldown.js:41:14 { [cause]: [Error: IO error: lock /Users/lianggao/.wechaty/wechaty-puppet-service/puppet_workpro_2d585137073d47b19772e536ee9bbdb7/v1.0/miscellaneous/LOCK: Resource temporarily unavailable] } Waiting for the debugger to disconnect... Waiting for the debugger to disconnect... lianggao@liangdeMacBook-Pro wxRobot %

su-chang commented 7 months ago

根据错误日志处理问题吧,看起来是个缓存文件有问题。

建议删除 /Users/lianggao/.wechaty 这个目录,再试下看看。

hcfw007 commented 7 months ago

无后续反馈,问题关闭。