Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
Nyayurin opened this issue Feb 22, 2024 · 4 comments
Closed
Labels
bug BUG

Comments

@Nyayurin
Copy link

Describe the bug

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

Steps to reproduce

应用(Application), 启动!

Expected behavior

有 status 字段

Screenshots

image
image

Versions

  • OS: Arch Linux
  • Platform: Chronocat(QQ)
  • Node version: 21.6.2
  • Koishi version: 4.17.0-beta.4

Additional context

No response

@Nyayurin Nyayurin added the bug BUG label Feb 22, 2024
@CyanChanges
Copy link

你连 Koishi 用的 server-satori?

@Nyayurin
Copy link
Author

image

@CyanChanges
Copy link

CyanChanges commented Feb 23, 2024

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

image

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

@Lipraty
Copy link
Member

Lipraty commented Feb 26, 2024

看 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 的原因应该是:

  • Chronocat 有 Token 鉴权,拥有登录流程,因此会下达 Login 事件
  • Koishi 中 server-satori 可能没有进行鉴权,因此没有 Login 事件

可以尝试的操作:

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

建议:

  • 鉴权目前来看不是必须的,因此 status 字段建议为可选
  • 信令数据 body 是可选项,无须进行过多的检查

参见:

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 了。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug BUG
Projects
None yet
Development

No branches or pull requests

3 participants