串流
本頁譯自英文。如兩者有出入,以英文頁面為準。 閱讀英文頁面
有四個操作以伺服器推送事件的形式串流回傳結果:產生詞彙、傳送導師訊息、建立課程計畫,以及追蹤課程計畫。每個函式庫都會把事件串流轉換成該語言本身的迭代器,並把每個事件解碼成有型別的值再交給你。
串流如何結束
- 工作完成時。 迭代會在串流的最後一個事件自動停止。對課程計畫來說,最後一個事件帶有結果,所以你會在迴圈結束之前收到它。
- API 回報錯誤時。 在串流中送達的錯誤會以 API 錯誤拋出,和在串流開始之前送達的錯誤型別相同。
- 連線失敗時。 在最後一個事件之前就結束的串流,或是 120 秒內什麼都沒送出的串流,會以傳輸錯誤拋出。
- 你主動停止時。 以你所用語言的一般方式取消呼叫,或是停止讀取,連線就會立即關閉。
保持連線的註解,以及函式庫還不認得的事件類型,都會被略過,所以較新的 API 永遠不會讓較舊的函式庫出問題。
絕不重播
已經送出過哪怕一個事件的串流,函式庫永遠不會重試,因為重來一次可能讓你的額度被扣兩次。如果課程計畫的串流在開始後中斷,請用 streamLessonPlan 和它第一個事件中的 plan_id 追蹤同一個計畫。