Skip to content

两种可能导致 The key-value separator ":" is not found in the sse line chunk! 问题的情况 #483

Open
@zhizuqiu

Description

重现步骤

问题描述:

在 python 环境下,我使用 sse_starlette 这个库来实现 SSE 协议,有两种情况会导致 ant-design-x 解析 SSE 格式失败:

  1. 默认情况下,sse_starlette 使用 \r\n 来分割同一事件的各行,我看 ant-design-x 的 x-stream 使用的是 '\n' 进行解析,这种情况下就会报错。我通过设置 EventSourceResponse(generate_stream(), sep="\n") 可以正常使用。
  2. sse_starlette 会每隔 15 秒发送一个 ping 注释信息,格式如下:
Image

看协议中也有对此行为的相关解释:https://html.spec.whatwg.org/multipage/server-sent-events.html#authoring-notes

Legacy proxy servers are known to, in certain cases, drop HTTP connections after a short timeout. To protect against such proxy servers, authors can include a comment line (one starting with a ':' character) every 15 seconds or so.

请确认以上推测是否正确?如果正确是否可以提供相应的功能升级:

1.支持更多换行符的覆盖("\r\n", "\r", "\n"),或者支持开发者可配置此参数
2.支持对于注释事件的处理

当前行为

No response

预期行为

No response

上下文

No response

版本

1.0.5

您在哪些浏览器上遇到了这个问题?

Chrome, Microsoft Edge

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions