流式传输
本页译自英文。如两者有出入,以英文页面为准。 阅读英文页面
有四个操作以服务器发送事件的形式流式返回结果:生成词汇、发送导师消息、创建课程计划以及跟进课程计划。每个库都会把事件流转换为该语言自身的迭代器,并把每个事件解码成带类型的值再交给你。
流如何结束
- 工作完成时。 迭代会在流的最后一个事件处自动停止。对于课程计划,最后一个事件携带结果,所以你会在循环结束之前收到它。
- API 报告错误时。 在流中到达的错误会作为 API 错误抛出,与在流开始之前到达的错误类型相同。
- 连接失败时。 在最后一个事件之前就结束的流,或者 120 秒内什么都没发送的流,会作为传输错误抛出。
- 你主动停止时。 用你所用语言的常规方式取消调用,或者停止读取,连接就会立即关闭。
保活注释以及库尚不认识的事件类型都会被跳过,所以更新的 API 永远不会破坏旧版本的库。
绝不重放
已经送出过哪怕一个事件的流,库永远不会重试,因为重复它可能让你的额度被扣两次。如果课程计划的流在开始后中断,请用 streamLessonPlan 和它第一个事件中的 plan_id 跟进同一个计划。