wechaty / puppet-supports

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

在开发机上启动后报错 #438

Closed SongYaoLynn closed 4 months ago

SongYaoLynn commented 5 months ago

开发机上启动后报错 开发机环境:centos 依赖的包版本: "@juzi/wechaty": "1.0.65", "@juzi/wechaty-puppet": "1.0.61", "@juzi/wechaty-puppet-service": "1.0.69", "axios": "1.6.0", "fs-extra": "11.1.1", "qrcode-terminal": "0.12.0", "winston": "3.11.0"

报错信息: 0|wechaty- | at onSuccessfulResolution (/home/work/documents/wechat-bot/node_modules/@grpc/grpc-js/build/src/resolving-load-balancer.js:221:40) 0|wechaty- | at process.processTicksAndRejections (node:internal/process/task_queues:85:22) 0|wechaty- | 16:47:50 WARN last event was 1715071670.092 seconds ago, will not request event cache 0|wechaty- | 16:47:50 WARN GrpcManager initClient() TLS: disabled (INSECURE) 0|wechaty- | TypeError: Cannot use 'in' operator to search for 'port' in undefined 0|wechaty- | at isTcpSubchannelAddress (/home/work/documents/wechat-bot/node_modules/@grpc/grpc-js/build/src/subchannel-address.js:22:19) 0|wechaty- | at interleaveAddressFamilies (/home/work/documents/wechat-bot/node_modules/@grpc/grpc-js/build/src/load-balancer-pick-first.js:107:71) 0|wechaty- | at PickFirstLoadBalancer.updateAddressList (/home/work/documents/wechat-bot/node_modules/@grpc/grpc-js/build/src/load-balancer-pick-first.js:419:29) 0|wechaty- | at ChildLoadBalancerHandler.updateAddressList (/home/work/documents/wechat-bot/node_modules/@grpc/grpc-js/build/src/load-balancer-child-handler.js:115:23) 0|wechaty- | at onSuccessfulResolution (/home/work/documents/wechat-bot/node_modules/@grpc/grpc-js/build/src/resolving-load-balancer.js:221:40) 0|wechaty- | at process.processTicksAndRejections (node:internal/process/task_queues:85:22) 0|wechaty- | 16:47:51 WARN last event was 1715071671.411 seconds ago, will not request event cache 0|wechaty- | 16:47:51 WARN GrpcManager initClient() TLS: disabled (INSECURE) 0|wechaty- | 16:48:05 WARN last event was 1715071685.505 seconds ago, will not request event cache 0|wechaty- | 16:48:05 WARN GrpcManager initClient() TLS: disabled (INSECURE)

0|wechaty-LJBOT | 16:50:12 WARN ServiceCtl stop() found that is starting... 0|wechaty-LJBOT | 16:50:12 WARN ServiceCtl stop() found that is starting, waiting stable ... (max 5 seconds) 0|wechaty-LJBOT | error: [LJBot] {"0":"o","1":"n","10":"D","11":"E","12":"A","13":"D","14":"L","15":"I","16":"N","17":"E","18":"_","19":"E","2":" ","20":"X","21":"C","22":"E","23":"E","24":"D","25":"E","26":"D","27":":","28":" ","29":"T","3":"e","30":"i","31":"m","32":"e","33":"o","34":"u","35":"t","36":" ","37":"a","38":"f","39":"t","4":"r","40":"e","41":"r","42":" ","43":"5","44":"0","45":"0","46":"0","47":" ","48":"m","49":"s","5":"r","6":"o","7":"r","8":":","9":" ","service":"LJBOT","timestamp":"2024-05-07 16:50:17"} 0|wechaty-LJBOT | 16:50:17 WARN ServiceCtl stop() found that is starting, waiting stable ... timeout 0|wechaty-LJBOT | error: [LJBot] {"0":"o","1":"n","10":"E","100":"7","101":"9","102":":","103":"4","104":"0","105":"0","106":"1","107":" ","108":"(","109":"2","11":"r","110":"0","111":"2","112":"4","113":"-","114":"0","115":"5","116":"-","117":"0","118":"7","119":"T","12":"r","120":"0","121":"8","122":":","123":"5","124":"0","125":":","126":"1","127":"2","128":".","129":"9","13":"o","130":"5","131":"9","132":"Z","133":")","14":"r","15":":","16":" ","17":"1","18":"4","19":" ","2":" ","20":"U","21":"N","22":"A","23":"V","24":"A","25":"I","26":"L","27":"A","28":"B","29":"L","3":"e","30":"E","31":":","32":" ","33":"N","34":"o","35":" ","36":"c","37":"o","38":"n","39":"n","4":"r","40":"e","41":"c","42":"t","43":"i","44":"o","45":"n","46":" ","47":"e","48":"s","49":"t","5":"r","50":"a","51":"b","52":"l","53":"i","54":"s","55":"h","56":"e","57":"d","58":".","59":" ","6":"o","60":"L","61":"a","62":"s","63":"t","64":" ","65":"e","66":"r","67":"r","68":"o","69":"r","7":"r","70":":","71":" ","72":"c","73":"o","74":"n","75":"n","76":"e","77":"c","78":"t","79":" ","8":":","80":"E","81":"T","82":"I","83":"M","84":"E","85":"D","86":"O","87":"U","88":"T","89":" ","9":" ","90":"4","91":"3","92":".","93":"1","94":"9","95":"2","96":".","97":"9","98":"4","99":".","service":"LJBOT","timestamp":"2024-05-07 16:50:17"}

0|wechaty-LJBOT | 18:44:15 WARN WechatyPuppetMixin start() starting puppet ... timeout 0|wechaty-LJBOT | 18:44:15 WARN WechatyPuppetMixin start() puppet info: Puppet(DocBot)

hcfw007 commented 5 months ago

请参考这个 Issue https://github.com/wechaty/puppet-supports/issues/364

SongYaoLynn commented 5 months ago

请参考这个 Issue #364

已经参考https://github.com/wechaty/puppet-supports/issues/364#issuecomment-1952270004 进行了如下修改: 修改 node_modules/@grpc/grpc-js/build/src/load-balancer-pick-first.js的411行 从 const rawAddressList = [].concat(...endpointList.map(endpoint => endpoint.addresses)); 改为 const rawAddressList = endpointList;

但依旧还是报错,报错信息里面有超时的日志,与参考的ssue不一样: 0|wechaty- | at onSuccessfulResolution (/home/work/documents/wechat-bot/node_modules/@grpc/grpc-js/build/src/resolving-load-balancer.js:221:40) 0|wechaty- | at process.processTicksAndRejections (node:internal/process/task_queues:85:22) 0|wechaty- | 16:47:51 WARN last event was 1715071671.411 seconds ago, will not request event cache 0|wechaty- | 16:47:51 WARN GrpcManager initClient() TLS: disabled (INSECURE) 0|wechaty- | 16:48:05 WARN last event was 1715071685.505 seconds ago, will not request event cache 0|wechaty- | 16:48:05 WARN GrpcManager initClient() TLS: disabled (INSECURE) 0|wechaty- | 16:48:20 WARN WechatyPuppetMixin start() starting puppet ... timeout 0|wechaty- | 16:48:20 WARN WechatyPuppetMixin start() puppet info: Puppet(DocBot) 0|wechaty- | 16:50:12 WARN ServiceCtl stop() found that is starting... 0|wechaty- | 16:50:12 WARN ServiceCtl stop() found that is starting, waiting stable ... (max 5 seconds) 0|wechaty- | 16:50:17 WARN ServiceCtl stop() found that is starting, waiting stable ... timeout 0|wechaty- | 18:44:01 WARN last event was 1715078641.002 seconds ago, will not request event cache 0|wechaty- | 18:44:01 WARN GrpcManager initClient() TLS: disabled (INSECURE) 0|wechaty- | 18:44:15 WARN WechatyPuppetMixin start() starting puppet ... timeout 0|wechaty- | 18:44:15 WARN WechatyPuppetMixin start() puppet info: Puppet(DocBot)

hcfw007 commented 5 months ago

看不出原因。 请在运行环境尝试以下操作: 访问 https://token-service-discovery-test.juzibot.com/v0/hosties/puppet_workpro_xxx ,看看能否正确获取到 ip 和 端口 安装最新的 @juzi scope 的 wechaty 相关依赖包 提供 token 最后六位字母供排查

SongYaoLynn commented 5 months ago

看不出原因。 请在运行环境尝试以下操作: 访问 https://token-service-discovery-test.juzibot.com/v0/hosties/puppet_workpro_xxx ,看看能否正确获取到 ip 和 端口 安装最新的 @juzi scope 的 wechaty 相关依赖包 提供 token 最后六位字母供排查

  1. 「访问 https://token-service-discovery-test.juzibot.com/v0/hosties/puppet_workpro_xxx 」可以获取到正确的 ip 和端口号
  2. 已安装最新的依赖包之后,在发起对话消息的时候还是报超时:
    
    0|wechaty- | 15:08:26 INFO PuppetSkeleton start()
    0|wechaty- | 15:08:26 INFO PuppetService start() instanciating GrpcManager ...
    0|wechaty- | 15:08:26 INFO PuppetService start() instanciating GrpcManager ... done
    0|wechaty- | 15:08:26 INFO PuppetService start() setting up bridge grpc event stream ...
    0|wechaty- | 15:08:26 INFO PuppetService start() setting up bridge grpc event stream ... done
    0|wechaty- | 15:08:26 INFO PuppetService start() starting grpc manager...
    0|wechaty- | 15:08:26 INFO GrpcManager startStream() connecting event stream with account undefined and seq undefined

0|wechaty-LJBOT | 15:08:41 WARN WechatyPuppetMixin start() starting puppet ... timeout 0|wechaty-LJBOT | 15:08:41 WARN WechatyPuppetMixin start() puppet info: Puppet(DocBot) 0|wechaty-LJBOT | info: [LJBot] {"service":"LJBOT","timestamp":"2024-05-11 15:08:41"} 0|wechaty-LJBOT | error: [LJBot] {"service":"LJBOT","timestamp":"2024-05-11 15:10:34"} 0|wechaty-LJBOT | error: [LJBot] {"service":"LJBOT","timestamp":"2024-05-11 15:10:34"} 0|wechaty-LJBOT | 15:10:34 WARN ServiceCtl stop() found that is starting... 0|wechaty-LJBOT | 15:10:34 WARN ServiceCtl stop() found that is starting, waiting stable ... (max 5 seconds) 0|wechaty-LJBOT | error: [LJBot] {"service":"LJBOT","timestamp":"2024-05-11 15:10:39"} 0|wechaty-LJBOT | 15:10:39 WARN ServiceCtl stop() found that is starting, waiting stable ... timeout


3. token 最后六位字母是`0acf07`,辛苦帮忙看看
hcfw007 commented 5 months ago

image 尝试连接后发现一切正常。

附上使用的最小代码。(需自行处理依赖)

const puppet = new PuppetService({
  token: 'puppet_workpro_xxxxxx0acf07',
  authority: 'token-service-discovery-test.juzibot.com',
  timeoutSeconds: 1 * 60,
  tls: {
    disable: true
  }
})

bot
  .on('scan', async (qrcode, status) => {
    if (status === ScanStatus.Waiting) {
      QrcodeTerminal.generate(qrcode, {
        small: true
      })
    }
  })
  .on('verify-code', (id, message, scene, status) => {
    console.log('verify-code', id, message, scene, status)
  })
  .on('login', async user => {
    console.log(JSON.stringify(user.payload))
    console.log(`
    ============================================
    user: ${JSON.stringify(user)}, friend: ${user.friend()}, ${user.coworker()}
    ============================================
    `)
    // console.log(await bot.Wecom.getExternalUserId(
    //   ['7881300890159037'],
    // ))
  })

bot.start()
hcfw007 commented 4 months ago

无反馈,关闭。