

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

# WebSocket APIs
<a name="api-endpoint"></a>

以下是 Amazon Kinesis Video Streams with WebRTC WebSocket APIs：

**Topics**
+ [

# ConnectAsMaster
](ConnectAsMaster.md)
+ [

# ConnectAsViewer
](ConnectAsViewer.md)

# ConnectAsMaster
<a name="ConnectAsMaster"></a>

以主節點身分連線至端點指定的訊號頻道。任何 WebSocket-complaint 程式庫都可用來連線到從 `GetSignalingChannelEndpoint` API 呼叫取得的安全 Websocket (WSS) 端點。必須提供訊號頻道的 Amazon Resource Name (ARN) 作為查詢字串參數。有個別端點可供以主節點和檢視器身分來連線。如果多個用戶端以主節點身分連接到特定頻道，則最新請求優先。新的連線中繼資料會覆寫現有的連線中繼資料。

## 請求
<a name="ConnectAsMaster-request"></a>

```
"X-Amz-ChannelARN": "string"
```
+ **X-Amz-ChannelARN** - 訊號頻道的 ARN。
  + 類型：字串
  + 長度限制：長度下限為 1。長度上限為 1024。
  + 模式：`arn:aws:kinesisvideo:[a-z0-9-]+:[0-9]+:[a-z]+/[a-zA-Z0-9_.-]+/[0-9]+`
  + 必要：是

## 回應
<a name="ConnectAsMaster-response"></a>

200 OK HTTP 狀態碼和空白內文。

## 錯誤
<a name="ConnectAsMaster-errors"></a>
+ InvalidArgumentException

  指定的參數超過其限制、不支援或無法使用。如需詳細資訊，請參閱傳回的訊息。

  HTTP 狀態碼：400
+ AccessDeniedException

  發起人未獲授權存取指定的通道或符記已過期。

  HTTP 狀態碼：403
+ ResourceNotFoundException

  頻道不存在。

  HTTP 狀態碼：404
+ ClientLimitExceededException

  以太高的速率叫用 API 時。如需詳細資訊，請參閱 [Amazon Kinesis Video Streams with WebRTC 服務配額](kvswebrtc-limits.md) 和[錯誤重試和指數退避。 AWS](https://docs.aws.amazon.com/general/latest/gr/api-retries.html)

  HTTP 狀態碼：400

## 限制/節流
<a name="ConnectAsMaster-limits"></a>

如果以太高的速率叫用 API，則會在帳戶層級節流此 API。節流時會以 `ClientLimitExceededException` 傳回錯誤。

## 等冪
<a name="ConnectAsMaster-idempotent"></a>

如果指定的 clientId 和頻道已存在連線，則會以新資訊更新連線中繼資料。

## 重試行為
<a name="ConnectAsMaster-retry"></a>

這視為新的 API 呼叫。

## 並行呼叫
<a name="ConnectAsMaster-concurrent"></a>

允許並行呼叫，每次呼叫都會更新連線中繼資料。

# ConnectAsViewer
<a name="ConnectAsViewer"></a>

以檢視器身分連線至端點所指定的訊號頻道。任何符合 WebSocket 的程式庫都可以用來連線到從 `GetSignalingChannelEndpoint` API 呼叫取得的安全 Websocket (WSS) 端點。必須提供訊號頻道的 Amazon Resource Name (ARN) 和用戶端 ID 作為查詢字串參數。有個別端點可供以主節點和檢視器身分來連線。如果現有的連線與請求中指定的連線`ClientId`相同，則以新連線為優先。新的資訊會覆寫連線中繼資料。

## 請求
<a name="ConnectAsViewer-request"></a>

```
"X-Amz-ChannelARN": "string",
"X-Amz-ClientId": "string"
```
+ **X-Amz-ChannelARN** - 訊號頻道的 ARN。
  + 類型：字串
  + 長度限制：長度下限為 1。長度上限為 1024。
  + 模式：`arn:aws:kinesisvideo:[a-z0-9-]+:[0-9]+:[a-z]+/[a-zA-Z0-9_.-]+/[0-9]+`
  + 必要：是
+ **X-Amz-ClientId** - 用戶端的唯一識別符。
  + 類型：字串
  + 長度限制：長度下限為 1。長度上限為 256。
  + 模式：`^(?!(?i)AWS_.*)[a-zA-Z0-9_.-]`
**注意**  
`X-Amz-ClientId` 無法以 開頭`AWS_`。
  + 必要：是

## 回應
<a name="ConnectAsViewer-response"></a>

200 OK HTTP 狀態碼和空白內文。

## 錯誤
<a name="ConnectAsViewer-errors"></a>
+ InvalidArgumentException

  指定的參數超過其限制、不支援或無法使用。如需詳細資訊，請參閱傳回的訊息。

  HTTP 狀態碼：400
+ AccessDeniedException

  發起人未獲授權存取指定的通道或符記已過期。

  HTTP 狀態碼：403
+ ResourceNotFoundException

  頻道不存在。

  HTTP 狀態碼：404
+ ClientLimitExceededException

  以太高的速率叫用 API 時，或連線至頻道的檢視器數目超出支援的上限時。如需詳細資訊，請參閱 [Amazon Kinesis Video Streams with WebRTC 服務配額](kvswebrtc-limits.md) 和[錯誤重試和指數退避。 AWS](https://docs.aws.amazon.com/general/latest/gr/api-retries.html)

  HTTP 狀態碼：400

## 限制/節流
<a name="ConnectAsViewer-limits"></a>

如果以太高的速率叫用 API，或連線至頻道的檢視器數目超出支援的上限時，則會在帳戶層級節流此 API。節流時會以 `ClientLimitExceededException` 傳回錯誤。

## 等冪
<a name="ConnectAsViewer-idempotent"></a>

如果指定的 `ClientId`和 頻道已存在連線，則會使用新資訊更新連線中繼資料。

## 重試行為
<a name="ConnectAsViewer-retry"></a>

這視為新的 API 呼叫。

## 並行呼叫
<a name="ConnectAsViewer-concurrent"></a>

允許並行呼叫，每次呼叫都會更新連線中繼資料。