Bluefissure / OtterBot

A QQ bot of FFXIV
https://xn--v9x.net
GNU General Public License v3.0
522 stars 129 forks source link

WS Reverse时间发送失败 #167

Closed SnowMoonSS closed 2 years ago

SnowMoonSS commented 2 years ago

最近总是出现这个报错:

2022-06-03 01:24:21 W/OneBot: WS Reverse事件发送失败, 连接已被关闭, 尝试重连中 xn--v9x.net:443-Client-Universal
2022-06-03 01:24:21 E/OneBot: Exception in coroutine Plugin com.github.yyuueexxiinngg.onebot of OneBot
java.util.ConcurrentModificationException
        at java.base/java.util.ArrayList$Itr.checkForComodification(ArrayList.java:1043)
        at java.base/java.util.ArrayList$Itr.next(ArrayList.java:997)
        at onebot-mirai-0.3.4-all.jar//com.github.yyuueexxiinngg.onebot.BotSession.triggerEventInternal(Session.kt:148)
        at onebot-mirai-0.3.4-all.jar//com.github.yyuueexxiinngg.onebot.BotSession$triggerEventInternal$1.invokeSuspend(Session.kt)
        at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
        at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
        at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570)
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:749)
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677)
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)

能够正常接收来自獭窝的信息,比如S怪这种,但只要bot一接受到来自QQ的消息就会报这个错 连接别的服务是正常的,比如基于nonebot的服务

proxy: ''
bots: 
  1234567890: 
    cacheImage: false
    cacheRecord: false
    heartbeat: 
      enable: false
      interval: 1500
    http: 
      enable: false
      host: 0.0.0.0
      port: 5700
      accessToken: ''
      postUrl: ''
      postMessageFormat: string
      secret: ''
      # 上报超时时间, 单位毫秒, 须大于0才会生效
      timeout: 0
    ws_reverse: 
      - enable: true
        postMessageFormat: string
        reverseHost: 'xn--v9x.net'
        reversePort: 443
        accessToken: ***********
        reversePath: '/ws'
        reverseApiPath: '/api'
        reverseEventPath: '/event'
        useUniversal: true
        useTLS: true
        reconnectInterval: 3000
      - enable: true
        postMessageFormat: string
        reverseHost: 127.0.0.1
        reversePort: 8080
        accessToken: ''
        reversePath: '/onebot/v11/ws'
        reverseApiPath: '/onebot/v11/api'
        reverseEventPath: '/onebot/v11/event'
        useUniversal: true
        useTLS: false
        reconnectInterval: 3000
    ws: 
      enable: false
      postMessageFormat: string
      wsHost: 0.0.0.0
      wsPort: 6700
      accessToken: ''
Bluefissure commented 2 years ago

哪个Bot?

SnowMoonSS commented 2 years ago

哪个Bot?

Alice

Bluefissure commented 2 years ago

我查看后台是能正确收到消息的,每条消息都会报错断连吗?还是正常处理一段时间后才会出现

SnowMoonSS commented 2 years ago

呃……是正常处理一段时间后出现的,有时几个小时,有时能撑个半天。每次都是重启bot恢复正常。 我刚重启过,现在看来是正常的。

Bluefissure commented 2 years ago

呃……是正常处理一段时间后出现的,有时几个小时,有时能撑个半天。每次都是重启bot恢复正常。 我刚重启过,现在看来是正常的。

之前每小时都会超时一次,但是大部分客户端应该都有自动重连机制,莫非onebot没有? 现在改成12小时了 https://github.com/Bluefissure/OtterBot/commit/bb1116cccfe69da85d9162c7c2c6d5aad412a8fe

SnowMoonSS commented 2 years ago

从这条issue发布到现在没有再出现同样的情况了 我这里又想到一个原因,我之前还开了个MC服务器,MC很容易地就把带宽占满了,我猜测是因为带宽被占满然后bot这边跟獭窝的连接就中断了,然后onebot能够重连又不能完全重连,变成只能接受来自獭窝的信息,无法上传到獭窝这样……(我就这么一瞎猜 昨晚提了这条issue的同时把MC服务器也迁移到别的机子上了,今天想到会不会是MC服务器的锅。 总之似乎已经好了。幸苦獭爹查log了