

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

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

获取特定用户到特定 Amazon DCV 会话的连接的连接信息。

**Topics**
+ [请求参数](#request)
+ [响应参数](#response)
+ [其他信息](#additional-info)
+ [示例](#example)

## 请求参数
<a name="request"></a>

**`SessionId`**  
要查看连接信息的会话的 ID。  
类型：字符串  
是否必需：是

**`User`**  
要查看连接信息的用户的名称。  
类型：字符串  
是否必需：是

## 响应参数
<a name="response"></a>

**`Id`**  
会话的唯一 ID。

**`Name`**  
会话的名称。

**`Owner`**  
会话的所有者。

**`Server`**  
有关运行会话的服务器的信息。该数据结构包括以下嵌套的响应参数：    
**`Ip`**  
Amazon DCV 服务器主机的 IP 地址。  
**`Hostname`**  
Amazon DCV 服务器主机的主机名。  
**`Port`**  
Amazon DCV 服务器与 Amazon DCV 客户端通信时使用的端口。  
**`Endpoints`**  
有关 Amazon DCV 服务器端点的信息。该数据结构包括以下嵌套的响应参数：    
**`IpAddress`**  
服务器终端节点的 IP 地址。  
**`Port`**  
服务器终端节点的端口。  
**`Protocol`**  
服务器终端节点使用的协议。可能的值包括：  
+ `HTTP`— 端点使用 WebSocket (TCP) 协议。
+ `QUIC` - 终端节点使用 QUIC（UDP）协议。  
**`WebUrlPath`**  
服务器终端节点的 Web URL 路径。仅适用于 HTTP 协议。  
**`WebUrlPath`**  
Amazon DCV 服务器配置文件的路径。  
**`Tags`**  
分配给服务器的标签。该数据结构包括以下嵌套的响应参数：    
**`Key`**  
标签键。  
**`Value`**  
标签值。

**`Type`**  
会话的类型。

**`State`**  
会话的当前状态。可能的值有：  
+ `CREATING` - Broker 正在创建会话。
+ `READY` - 会话准备好接受客户端连接。
+ `DELETING` - 正在删除会话。
+ `DELETED` - 已删除会话。
+ `UNKNOWN` - 无法确定会话的状态。Broker 和 Agent 可能无法通信。

**`CreationTime`**  
创建会话的日期和时间。

**`LastDisconnectionTime`**  
上次客户端断开连接的日期和时间。

**`NumOfConnections`**  
用户到会话的并发连接数。

**`ConnectionToken`**  
用于连接到会话的身份验证令牌。

## 其他信息
<a name="additional-info"></a>

可以将从该 API 中获取的信息传送到 Amazon DCV 客户端，以便连接到 Amazon DCV 会话。

对于 Amazon DCV Web 客户端，您可以构建一个可在浏览器中打开的 URL。该 URL 采用以下格式：

```
https://{Ip}:{Port}{WebUrlPath}?authToken={ConnectionToken}#{SessionId}.
```

对于 Amazon DCV 本机客户端，您可以使用 `dcv://` 模式构建一个 URL。安装 Amazon DCV 原生客户端后，它会在系统中注册自己作为处理程序。`dcv://` URLs该 URL 采用以下格式：

```
dcv://{Ip}:{Port}{WebUrlPath}?authToken={ConnectionToken}#{SessionId}.
```

**注意**  
 如果您使用 Amazon EC2，则 IP 地址应该是公有地址。如果您的配置在网关后面有 Amazon DCV 主机，请指定网关地址，而不是 SessionConnectionData API 返回的网关地址。

## 示例
<a name="example"></a>

------
#### [ Python ]

**请求**  
以下示例获取具有用户名 `user1` 的用户和具有 ID `sessionId12345` 的会话的连接信息。

```
def get_session_connection_api():
    api_instance = swagger_client.GetSessionConnectionDataApi(swagger_client.ApiClient(get_client_configuration()))
    set_request_headers(api_instance.api_client)
    return api_instance


def get_url_to_connect(api_response):
    ip_address = api_response.session.server.ip
    port = api_response.session.server.port
    web_url_path = api_response.session.server.web_url_path
    connection_token = api_response.connection_token
    session_id = api_response.session.id
    url = f'https://{ip_address}:{port}{web_url_path}?authToken={connection_token}#{session_id}'
    return url


def get_session_connection_data(session_id, user):
    api_response = get_session_connection_api().get_session_connection_data(session_id=session_id, user=user)
    url_to_connect = get_url_to_connect(api_response)
    print('Get Session Connection Data Response:', api_response)
    print('URL to connect: ', url_to_connect)


def main():
    get_session_connection_data('sessionId12345', 'user1')
```

**响应**  
以下是示例输出。

```
{
    "Session": {
        "Id": "sessionId12345",
        "Name": "a session name",
        "Owner": "an owner 1890",
        "Server": {
            "Ip": "1.1.1.123",
            "Hostname": "server hostname",
            "Port": "1222",
            "endpoints": [
                {
                    "port": 8443,
                    "web_url_path": "/",
                    "protocol": "HTTP"
                },
                {
                    "port": 9443,
                    "web_url_path": "/",
                    "protocol": "HTTP"
                },
                {
                    "port": 8443,
                    "web_url_path": "",
                    "protocol": "QUIC"
                }
            ],
            "WebUrlPath": "/path",
            "Tags": [
                {
                    "Key": "os",
                    "Value": "windows"
                },
                {
                    "Key": "ram",
                    "Value": "4gb"
                }
            ]
        },
        "Type": "VIRTUAL",
        "State": "UNKNOWN",
        "CreationTime": "2020-10-06T10:15:31.633Z",
        "LastDisconnectionTime": "2020-10-06T10:15:31.633Z",
        "NumOfConnections": 2
    },
    "ConnectionToken": "EXAMPLEiOiJmOWM1YTRhZi1jZmU0LTQ0ZjEtYjZlOC04ZjY0YjM4ZTE2ZDkiLCJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJkY3ZTZXNzaW9uSWQiOiJTZXNzaW9uSWQxODk5IiwiZGN2U2Vzc2lvbk93bmVyIjoiYW4gb3duZXIgMTEXAMPLEmRjdlNlc3Npb25Vc2VyIjoibXlVc2VyIiwiZXhwIjoxNjAxOTg1NDA4LCJpYXQiOjE2MDE5ODE4MDgsImp0aSI6IjgwMjljNDUwLTQwMDUtNDJhMy04YTQzLWFmZTM3ZTc4NTQ0ZCJ9.N0RRRT1FZuBgex_0iFwKBAdHdM2JSSADc-tngiKXevUxhhJvm3BPJYRs9NPE4GCJRTc13EXAMPLEIxNEPPh5IMcVmROfU1WKPnry4ypPTp3rsZ7YWjCTSfs1GoN3R_nLFyAxfhPD2yY-Kqtpd5GH0D-E8FwsedV-Q2bRQ4y9y1q0MgFU4QjaSMypUuYR0YjkCaoainjmEZew4A33fG40wATrBvoivBiNWdNpytHX2CDOuk_k0k_DWeZjMvv9jF1f5EXAMPLEm9h5zj_Nb1PKKfBSx9_O6gSJwC9UD-h_GaMgHmltqBIA4jdPD7i0CmC2e7413KFy-EQ4Ej1cM7RjLwhFuWpKWAVJxogJjYpfoKKaPo4KxvJjJIPYhkscklINQpe2W5rnlxCq7sC7ptcGw17DUobP7egRv9H37VD8SrkLyq-hK1G4G8erHvl9HIrTR9_c884fNrTCC8DvC062e4KYdLkAhhJmboN9CAGIGFyd2c1AY_CzzvDL0EXAMLE"
}
```

------