project-mirai / mirai-api-http

Mirai HTTP API (console) plugin
GNU Affero General Public License v3.0
1.65k stars 345 forks source link

/fetchMessage返回错误{"code":500,"msg":"Not a http session"} #658

Closed H3AlO3 closed 1 year ago

H3AlO3 commented 1 year ago

开启了singleMode,未开启verify,/groupList正常返回,mcl中消息正常被接收,ws同接口正常 setting.yml如下

adapters: 
  - http
debug: false
enableVerify: false
verifyKey: INITKEYpmdZ6CH3
singleMode: true
cacheSize: 4096
persistenceFactory: 'built-in'

adapterSettings:
  ## 详情看 http adapter 使用说明 配置
  http:
    host: localhost
    port: 8080
    cors: ["*"]
    unreadQueueMaxSize: 100

报错信息如下

2022-12-15 01:00:14 E/MAH Access: java.lang.RuntimeException: Not a http session
java.lang.RuntimeException: Not a http session
    at mirai-api-http-2.6.2.mirai2.jar//net.mamoe.mirai.api.http.adapter.http.session.HttpAuthedSessionKt.unreadQueue(HttpAuthedSession.kt:45)
    at mirai-api-http-2.6.2.mirai2.jar//net.mamoe.mirai.api.http.adapter.http.dto.CountDTO.getUnreadQueue(parameters.kt:18)
    at mirai-api-http-2.6.2.mirai2.jar//net.mamoe.mirai.api.http.adapter.http.router.MessageKt$messageRouter$1$invoke$$inlined$httpAuthedGet$2$1.invokeSuspend(dsl.kt:201)
    at mirai-api-http-2.6.2.mirai2.jar//net.mamoe.mirai.api.http.adapter.http.router.MessageKt$messageRouter$1$invoke$$inlined$httpAuthedGet$2$1.invoke(dsl.kt)
    at mirai-api-http-2.6.2.mirai2.jar//net.mamoe.mirai.api.http.adapter.http.router.MessageKt$messageRouter$1$invoke$$inlined$httpAuthedGet$2$1.invoke(dsl.kt)
    at mirai-api-http-2.6.2.mirai2.jar[shared]//io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:248)
    at mirai-api-http-2.6.2.mirai2.jar[shared]//io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:116)
    at mirai-api-http-2.6.2.mirai2.jar[shared]//io.ktor.util.pipeline.SuspendFunctionGun.execute(SuspendFunctionGun.kt:136)
    at mirai-api-http-2.6.2.mirai2.jar[shared]//io.ktor.util.pipeline.Pipeline.execute(Pipeline.kt:78)
    at mirai-api-http-2.6.2.mirai2.jar[shared]//io.ktor.routing.Routing.executeResult(Routing.kt:155)
    at mirai-api-http-2.6.2.mirai2.jar[shared]//io.ktor.routing.Routing.interceptor(Routing.kt:39)
    at mirai-api-http-2.6.2.mirai2.jar[shared]//io.ktor.routing.Routing$Feature$install$1.invokeSuspend(Routing.kt:107)
    at mirai-api-http-2.6.2.mirai2.jar[shared]//io.ktor.routing.Routing$Feature$install$1.invoke(Routing.kt)
    at mirai-api-http-2.6.2.mirai2.jar[shared]//io.ktor.routing.Routing$Feature$install$1.invoke(Routing.kt)
    at mirai-api-http-2.6.2.mirai2.jar[shared]//io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:248)
    at mirai-api-http-2.6.2.mirai2.jar[shared]//io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:116)
    at mirai-api-http-2.6.2.mirai2.jar//net.mamoe.mirai.api.http.adapter.http.feature.auth.Authorization$install$1.invokeSuspend(Authorization.kt:30)
    at mirai-api-http-2.6.2.mirai2.jar//net.mamoe.mirai.api.http.adapter.http.feature.auth.Authorization$install$1.invoke(Authorization.kt)
    at mirai-api-http-2.6.2.mirai2.jar//net.mamoe.mirai.api.http.adapter.http.feature.auth.Authorization$install$1.invoke(Authorization.kt)
    at mirai-api-http-2.6.2.mirai2.jar[shared]//io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:248)
    at mirai-api-http-2.6.2.mirai2.jar[shared]//io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:116)
    at mirai-api-http-2.6.2.mirai2.jar//net.mamoe.mirai.api.http.adapter.http.feature.handler.HttpRouterAccessHandler.intercept(HttpRouterAccessHandler.kt:36)
    at mirai-api-http-2.6.2.mirai2.jar//net.mamoe.mirai.api.http.adapter.http.feature.handler.HttpRouterAccessHandler.access$intercept(HttpRouterAccessHandler.kt:25)
    at mirai-api-http-2.6.2.mirai2.jar//net.mamoe.mirai.api.http.adapter.http.feature.handler.HttpRouterAccessHandler$Feature$install$1.invokeSuspend(HttpRouterAccessHandler.kt:91)
    at mirai-api-http-2.6.2.mirai2.jar//net.mamoe.mirai.api.http.adapter.http.feature.handler.HttpRouterAccessHandler$Feature$install$1.invoke(HttpRouterAccessHandler.kt)
    at mirai-api-http-2.6.2.mirai2.jar//net.mamoe.mirai.api.http.adapter.http.feature.handler.HttpRouterAccessHandler$Feature$install$1.invoke(HttpRouterAccessHandler.kt)
    at mirai-api-http-2.6.2.mirai2.jar[shared]//io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:248)
    at mirai-api-http-2.6.2.mirai2.jar[shared]//io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:116)
    at mirai-api-http-2.6.2.mirai2.jar[shared]//io.ktor.util.pipeline.SuspendFunctionGun.execute(SuspendFunctionGun.kt:136)
    at mirai-api-http-2.6.2.mirai2.jar[shared]//io.ktor.util.pipeline.Pipeline.execute(Pipeline.kt:78)
    at mirai-api-http-2.6.2.mirai2.jar[shared]//io.ktor.server.engine.DefaultEnginePipelineKt$defaultEnginePipeline$2.invokeSuspend(DefaultEnginePipeline.kt:127)
    at mirai-api-http-2.6.2.mirai2.jar[shared]//io.ktor.server.engine.DefaultEnginePipelineKt$defaultEnginePipeline$2.invoke(DefaultEnginePipeline.kt)
    at mirai-api-http-2.6.2.mirai2.jar[shared]//io.ktor.server.engine.DefaultEnginePipelineKt$defaultEnginePipeline$2.invoke(DefaultEnginePipeline.kt)
    at mirai-api-http-2.6.2.mirai2.jar[shared]//io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:248)
    at mirai-api-http-2.6.2.mirai2.jar[shared]//io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:116)
    at mirai-api-http-2.6.2.mirai2.jar[shared]//io.ktor.util.pipeline.SuspendFunctionGun.execute(SuspendFunctionGun.kt:136)
    at mirai-api-http-2.6.2.mirai2.jar[shared]//io.ktor.util.pipeline.Pipeline.execute(Pipeline.kt:78)
    at mirai-api-http-2.6.2.mirai2.jar[shared]//io.ktor.server.cio.CIOApplicationEngine$handleRequest$2.invokeSuspend(CIOApplicationEngine.kt:196)
    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:750)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)

访问的url是http://localhost:8080/fetchMessage?sessionKey=&count=10 麻烦帮忙看一下,谢谢!

Simakeng commented 1 year ago

报错仍然存在 /countMessage /fetchMessage 均返回同样的错误

同样开启了singleMode,未开启verify,/groupList正常返回,mcl中消息正常被接收

版本:

  21:54:38 [INFO] Verifying "net.mamoe:mirai-console" v2.13.2
  21:54:39 [INFO] Verifying "net.mamoe:mirai-console-terminal" v2.13.2
  21:54:39 [INFO] Verifying "net.mamoe:mirai-core-all" v2.13.2
  21:54:40 [INFO] Verifying "org.itxtech:mcl-addon" v2.1.1
  21:54:40 [INFO] Verifying "org.bouncycastle:bcprov-jdk15on" v1.64
  21:54:40 [INFO] Verifying "net.mamoe:mirai-api-http" v2.6.2

配置

adapters: 
  - http
debug: false
enableVerify: false
verifyKey: INITKEYiXsPLN1z
singleMode: true
cacheSize: 8192
adapterSettings: 
  http:
    host: localhost
    port: 8085
    cors: ["*"]

详细报错信息如下

2022-12-19 21:54:52 E/MAH Access: java.lang.RuntimeException: Not a http session
java.lang.RuntimeException: Not a http session
        at mirai-api-http-2.6.2.mirai2.jar//net.mamoe.mirai.api.http.adapter.http.session.HttpAuthedSessionKt.unreadQueue(HttpAuthedSession.kt:45)
        at mirai-api-http-2.6.2.mirai2.jar//net.mamoe.mirai.api.http.adapter.http.dto.CountDTO.getUnreadQueue(parameters.kt:18)
        at mirai-api-http-2.6.2.mirai2.jar//net.mamoe.mirai.api.http.adapter.http.router.MessageKt$messageRouter$1$invoke$$inlined$httpAuthedGet$2$1.invokeSuspend(dsl.kt:201)
        at mirai-api-http-2.6.2.mirai2.jar//net.mamoe.mirai.api.http.adapter.http.router.MessageKt$messageRouter$1$invoke$$inlined$httpAuthedGet$2$1.invoke(dsl.kt)
        at mirai-api-http-2.6.2.mirai2.jar//net.mamoe.mirai.api.http.adapter.http.router.MessageKt$messageRouter$1$invoke$$inlined$httpAuthedGet$2$1.invoke(dsl.kt)
        at mirai-api-http-2.6.2.mirai2.jar[shared]//io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:248)
        at mirai-api-http-2.6.2.mirai2.jar[shared]//io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:116)
        at mirai-api-http-2.6.2.mirai2.jar[shared]//io.ktor.util.pipeline.SuspendFunctionGun.execute(SuspendFunctionGun.kt:136)
        at mirai-api-http-2.6.2.mirai2.jar[shared]//io.ktor.util.pipeline.Pipeline.execute(Pipeline.kt:78)
        at mirai-api-http-2.6.2.mirai2.jar[shared]//io.ktor.routing.Routing.executeResult(Routing.kt:155)
        at mirai-api-http-2.6.2.mirai2.jar[shared]//io.ktor.routing.Routing.interceptor(Routing.kt:39)
        at mirai-api-http-2.6.2.mirai2.jar[shared]//io.ktor.routing.Routing$Feature$install$1.invokeSuspend(Routing.kt:107)
        at mirai-api-http-2.6.2.mirai2.jar[shared]//io.ktor.routing.Routing$Feature$install$1.invoke(Routing.kt)
        at mirai-api-http-2.6.2.mirai2.jar[shared]//io.ktor.routing.Routing$Feature$install$1.invoke(Routing.kt)
        at mirai-api-http-2.6.2.mirai2.jar[shared]//io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:248)
        at mirai-api-http-2.6.2.mirai2.jar[shared]//io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:116)
        at mirai-api-http-2.6.2.mirai2.jar//net.mamoe.mirai.api.http.adapter.http.feature.auth.Authorization$install$1.invokeSuspend(Authorization.kt:30)
        at mirai-api-http-2.6.2.mirai2.jar//net.mamoe.mirai.api.http.adapter.http.feature.auth.Authorization$install$1.invoke(Authorization.kt)
        at mirai-api-http-2.6.2.mirai2.jar//net.mamoe.mirai.api.http.adapter.http.feature.auth.Authorization$install$1.invoke(Authorization.kt)
        at mirai-api-http-2.6.2.mirai2.jar[shared]//io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:248)
        at mirai-api-http-2.6.2.mirai2.jar[shared]//io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:116)
        at mirai-api-http-2.6.2.mirai2.jar//net.mamoe.mirai.api.http.adapter.http.feature.handler.HttpRouterAccessHandler.intercept(HttpRouterAccessHandler.kt:36)
        at mirai-api-http-2.6.2.mirai2.jar//net.mamoe.mirai.api.http.adapter.http.feature.handler.HttpRouterAccessHandler.access$intercept(HttpRouterAccessHandler.kt:25)
        at mirai-api-http-2.6.2.mirai2.jar//net.mamoe.mirai.api.http.adapter.http.feature.handler.HttpRouterAccessHandler$Feature$install$1.invokeSuspend(HttpRouterAccessHandler.kt:91)
        at mirai-api-http-2.6.2.mirai2.jar//net.mamoe.mirai.api.http.adapter.http.feature.handler.HttpRouterAccessHandler$Feature$install$1.invoke(HttpRouterAccessHandler.kt)
        at mirai-api-http-2.6.2.mirai2.jar//net.mamoe.mirai.api.http.adapter.http.feature.handler.HttpRouterAccessHandler$Feature$install$1.invoke(HttpRouterAccessHandler.kt)
        at mirai-api-http-2.6.2.mirai2.jar[shared]//io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:248)
        at mirai-api-http-2.6.2.mirai2.jar[shared]//io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:116)
        at mirai-api-http-2.6.2.mirai2.jar[shared]//io.ktor.util.pipeline.SuspendFunctionGun.execute(SuspendFunctionGun.kt:136)
        at mirai-api-http-2.6.2.mirai2.jar[shared]//io.ktor.util.pipeline.Pipeline.execute(Pipeline.kt:78)
        at mirai-api-http-2.6.2.mirai2.jar[shared]//io.ktor.server.engine.DefaultEnginePipelineKt$defaultEnginePipeline$2.invokeSuspend(DefaultEnginePipeline.kt:127)
        at mirai-api-http-2.6.2.mirai2.jar[shared]//io.ktor.server.engine.DefaultEnginePipelineKt$defaultEnginePipeline$2.invoke(DefaultEnginePipeline.kt)
        at mirai-api-http-2.6.2.mirai2.jar[shared]//io.ktor.server.engine.DefaultEnginePipelineKt$defaultEnginePipeline$2.invoke(DefaultEnginePipeline.kt)
        at mirai-api-http-2.6.2.mirai2.jar[shared]//io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:248)
        at mirai-api-http-2.6.2.mirai2.jar[shared]//io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:116)
        at mirai-api-http-2.6.2.mirai2.jar[shared]//io.ktor.util.pipeline.SuspendFunctionGun.execute(SuspendFunctionGun.kt:136)
        at mirai-api-http-2.6.2.mirai2.jar[shared]//io.ktor.util.pipeline.Pipeline.execute(Pipeline.kt:78)
        at mirai-api-http-2.6.2.mirai2.jar[shared]//io.ktor.server.cio.CIOApplicationEngine$handleRequest$2.invokeSuspend(CIOApplicationEngine.kt:196)
        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:750)
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677)
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)

麻烦查看一下

Simakeng commented 1 year ago

明确了问题了,mcl -u 出来的版本仍然是2.6.7 手动更新到 2.7.0 无法读入adapter配置,整个mirai-http-api是一个不可用的状态,具体参看 #661