Create a Device Tunnel
Function
You can use this API to create a tunnel (WebSocket protocol) through which the application and device can transmit data.
-
This API is not supported by Basic editions.
-
After this API is called, the IoT platform delivers the tunnel address and secret to an MQTT/MQTTS device for setting up WebSocket connections and returns the tunnel address and secret to the application.
-
Multiple tunnels cannot be created on a device.
-
For details, see [Remote Login] (https://support.huaweicloud.com/intl/en-us/usermanual-iothub/iot_01_00301.html).
Debugging
You can debug this API through automatic authentication in API Explorer or use the SDK sample code generated by API Explorer.
URI
POST /v5/iot/{project_id}/tunnels
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
project_id |
Yes |
String |
Parameter description: project ID. For details about how to obtain the project ID, see Obtaining a Project ID. |
Request Parameters
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
X-Auth-Token |
No |
String |
Parameter description: user token. You can obtain the token by calling the IAM API Obtaining a User Token Through Password Authentication. In the returned response header, X-Subject-Token is the desired user token. For details about how to obtain the token, see Token Authentication. |
Instance-Id |
No |
String |
Parameter description: instance ID. Unique identifier of each instance in the physical multi-tenant scenario. Mandatory for professional editions and recommended in other cases. Log in to the IoTDA console and choose Overview in the navigation pane to view the instance ID. For details, see Viewing Instance Details. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
device_id |
Yes |
String |
Parameter description: device ID. |
Response Parameters
Status code: 201
Parameter |
Type |
Description |
---|---|---|
tunnel_id |
String |
Tunnel ID. |
tunnel_access_token |
String |
Authentication information. |
expires_in |
Integer |
Validity period of authentication information, in seconds. Minimum: 0 Maximum: 86400000 |
tunnel_uri |
String |
WebSocket access address. Minimum: 1 Maximum: 2048 |
Example Requests
Creates a device tunnel whose device ID is b64b7a625b84c1334befb648b_test.
POST https://{endpoint}/v5/iot/{project_id}/tunnels { "device_id" : "b64b7a625b84c1334befb648b_test" }
Example Responses
Status code: 201
The device tunnel is successfully created.
{ "tunnel_id" : "d144a524-1997-4b99-94bf-f27128da8a34", "tunnel_access_token" : "MIIDkgYJKoZIhvcNAQcCoIIDgzCCXXXXX", "expires_in" : 86400, "tunnel_uri" : "wss://tunnel.st1.iotda-app.cn-XXX.myhuaweicloud.com/v5/iot/tunnels/XXX/source-connect" }
Status Codes
Status Code |
Description |
---|---|
201 |
The device tunnel is successfully created. |
400 |
Invalid value. |
401 |
Unauthorized |
403 |
Authentication failed. |
500 |
Internal Server Error |
Error Codes
See Error Codes.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot