事件串流事件 - Amazon Lex

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

事件串流事件

事件串流編碼會在用戶端與伺服器之間使用訊息來提供雙向通訊。傳送至 Amazon Lex V2 串流服務的資料框架會以這種格式編碼。來自 Amazon Lex V2 的響應也使用這種編碼。

每則訊息包含兩個部分:序言和資料。前奏部分包含消息的總字節長度和所有標頭的組合字節長度。data 部分包含標題和有效負載。

每個區段以 4 位元組由大到小的整數 CRC 檢查總和結束。消息 CRC 校驗和包括前奏部分和數據部分。Amazon Lex V2 使用 CRC32(通常稱為 GZIP CRC32)來計算兩個 CRC。如需 CRC32 的詳細資訊,請參閱 GZIP 檔案格式規格 4.3 版

總訊息額外負荷 (包括序言和兩個檢查總和) 為 16 位元組。

下圖顯示構成訊息和標題的元件。每則訊息有多個標頭。

每則訊息都包含下列元件:

  • 序言: 一律為 8 位元組的固定大小,兩個欄位每一個為 4 位元組。

    • 前 4 位元組:總位元組長度。這是整個訊息的大端序整數位元組長度,包括 4 位元組長度欄位本身。

    • 後 4 位元組:標頭位元組長度。這是訊息標頭部分的大端序整數位元組長度,不含 4 位元組長度欄位本身。

  • 序言 CRC:訊息序言部分的 4 位元組 CRC 檢查總和,不含 CRC 本身。序曲與訊息 CRC 具有獨立的 CRC,以確保 Amazon Lex V2 可以立即偵測到損毀的位元組長度資訊,而不會造成緩衝區溢位等錯誤。

  • 標頭:註釋訊息的中繼資料,例如訊息類型、內容類型等等。訊息有多個標頭。標頭是索引鍵值組,其中索引鍵是 UTF-8 字串。標頭可以任何順序出現在訊息的標頭部分中,而且任何指定標頭只能出現一次。如需必要標頭類型,請參閱以下各節。

  • 承載:音訊或文字內容傳送至 Amazon Lex。

  • 訊息 CRC:從訊息開頭到檢查總和開頭的 4 位元組 CRC 檢查總和。這包括除了 CRC 本身之外的消息中的所有內容。

每個標頭都包含下列元件。每個框架有多個標頭。

  • 標頭名稱位元組長度:標頭名稱的位元組長度。

  • 標頭名稱:指出標頭類型的標頭名稱。如需有效值,請參閱下列框架描述。

  • 標頭值類型:指出標頭值類型的列舉。

  • 數值字串位元組長度: 標頭值字串的位元組長度。

  • 標頭值:標頭字串的值。此欄位的有效值取決於標頭類型。如需有效值,請參閱下列框架描述。