本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
事件串流編碼
事件串流編碼會在用戶端與伺服器之間使用訊息來提供雙向通訊。傳送至 Amazon Lex V2 串流服務的資料框架會以這種格式編碼。來自 Amazon Lex V2 的響應也使用這種編碼。
每則訊息包含兩個部分:序言和資料。前奏部分包含消息的總字節長度和所有標頭的組合字節長度。data 部分包含標題和有效負載。
每個部分以 4 字節的大端整數校驗和結束。CRC訊息CRC總和檢查碼包括序曲區段和資料區段。Amazon Lex V2 使用CRC32(通常稱為 GZIPCRC32)來計算兩者CRCs。如需有關的詳細資訊CRC32,請參閱GZIP檔案格式規格 4.3 版
總訊息額外負荷 (包括序言和兩個檢查總和) 為 16 位元組。
下圖顯示構成訊息和標題的元件。每則訊息有多個標頭。
每則訊息都包含下列元件:
-
序言: 一律為 8 位元組的固定大小,兩個欄位每一個為 4 位元組。
-
前 4 位元組:總位元組長度。這是整個訊息的大端序整數位元組長度,包括 4 位元組長度欄位本身。
-
後 4 位元組:標頭位元組長度。這是訊息標頭部分的大端序整數位元組長度,不含 4 位元組長度欄位本身。
-
-
前奏CRC:訊息前奏部分的 4 位元組CRC總和檢查碼,不包括本身。CRC前奏與訊息分開CRC,以確保 Amazon Lex V2 可以立即偵測CRC到損毀的位元組長度資訊,而不會造成緩衝區溢位等錯誤。
-
標頭:註釋訊息的中繼資料,例如訊息類型、內容類型等等。訊息有多個標頭。標題是鍵-值對,其中鍵是 UTF -8 字符串。標頭可以任何順序出現在訊息的標頭部分中,而且任何指定標頭只能出現一次。如需必要標頭類型,請參閱以下各節。
-
承載:音訊或文字內容傳送至 Amazon Lex。
-
訊息CRC:從郵件開頭到CRC總和檢查碼開頭的 4 位元組總和檢查碼。這包括除了CRC本身以外的消息中的所有內容。
每個標頭都包含下列元件。每個框架有多個標頭。
-
標頭名稱位元組長度:標頭名稱的位元組長度。
-
標頭名稱:指出標頭類型的標頭名稱。如需有效值,請參閱下列框架描述。
-
標頭值類型:指出標頭值類型的列舉。
-
數值字串位元組長度: 標頭值字串的位元組長度。
-
標頭值:標頭字串的值。此欄位的有效值取決於標頭類型。如需有效值,請參閱下列框架描述。