使用 okhttp3 发送 SSE 请求:如何处理 finish 事件附加数据
问题描述
使用 OkHttp3 发送 SSE 请求时,在事件状态为 finish 时希望接收附加的数据(meta),但发现 onEvent() 为空。
问题成因及解决方案
SSE 规范规定了事件的结构,其中只能包含 event、data、id 和 retry 字段。任意其他字段名都将被忽略。
在 OkHttp 中,事件解析遵从这一规范,这意味着 non-standard 字段(如 meta)将被忽略。
要解决这一问题,需要使用自定义的解析器,将非标准数据从响应中提取出来。