koishijs / koishi

Cross-platform chatbot framework made with love
https://koishi.chat
MIT License
4.53k stars 246 forks source link

Bug: adapter-satori 连 Chronocat 后 READY 信令内没有 status 字段 #1367

Closed Nyayurin closed 9 months ago

Nyayurin commented 9 months ago

Describe the bug

根据 Satori 文档, status 字段应该必需 直接连猫猫是没问题的, 但是 koishi 连猫猫我再连 koishi 就缺字段然后反序列化失败报错

Steps to reproduce

应用(Application), 启动!

Expected behavior

有 status 字段

Screenshots

image image

Versions

Additional context

No response

CyanChanges commented 9 months ago

你连 Koishi 用的 server-satori?

Nyayurin commented 9 months ago

image

CyanChanges commented 9 months ago

看 satori-server 和 satori core 看了一圈了,没看出来可以没 status 的情况,我不到了,也不到你是怎么连的,你也不说。。

image

不是,You block me, i block you...

Lipraty commented 9 months ago

看 satori-server 和 satori core 看了一圈了,没看出来可以没 status 的情况

这是协议连接过程出现的问题。


根据 Satori 文档, status 字段应该必需

根据文档, status 字段来自 Login

见文档 WebSocket 连接流程:

总的来说,Satori 应用需要在连接后遵循以下步骤:

  1. 连接建立后,在 10s 内发送一个 IDENTIFY 信令,用于鉴权和恢复会话; SDK 收到后会回复一个 READY 信令,并开启事件推送;
  2. 连接建立后,每隔 10s 向 SDK 发送一次 PING 信令; SDK 收到后会回复一个 PONG 信令;
  3. 应用持续接收来自 SDK 的 EVENT 信令,用于接收事件。

综上所述,READY 答复中缺失 status 的原因应该是:

可以尝试的操作:

在 server-satori 中配置 Token 后重新尝试。

建议:


参见:

https://satori.js.org/zh-CN/resources/login.html#login https://satori.js.org/zh-CN/protocol/events.html#%E8%BF%9E%E6%8E%A5%E6%B5%81%E7%A8%8B

由于这非 koishi 问题,先 Close 了。