Sends a single message from an application on a cloud server to Message Queue for MQTT.

Scenarios

The SendMessage operation is called by an application on a cloud server. It is complementary to the operation that is called to send a message from a Message Queue for MQTT client. For more information about the differences between the scenarios on a cloud server and the scenarios on a Message Queue for MQTT client, see Developer guide.

Note Before you call the SendMessage operation, ensure that the kernel version of your Message Queue for MQTT instance is V3.3.0 or later. You can obtain the kernel version information from the instance details page in the Message Queue for MQTT console.

Limits

The SendMessage operation supports a maximum of 1,000 queries per second (QPS). For more information, see QPS limits.

Note Each successful call to the SendMessage operation is calculated as a message transaction per second (TPS). This way, you are billed for the call. For more information, seeBilling.

Debugging

OpenAPI Explorer automatically calculates the signature value. For your convenience, we recommend that you call this operation in OpenAPI Explorer. OpenAPI Explorer dynamically generates the sample code of the operation for different SDKs.

Request parameters

Parameter Type Required Example Description
Action String Yes SendMessage

The operation that you want to perform. Set the value to SendMessage.

InstanceId String Yes post-cn-0pp12gl****

The ID of the Message Queue for MQTT instance. The value must match the instance ID used on the Message Queue for MQTT client. You can obtain the instance ID from the instance details page in the Message Queue for MQTT console.

MqttTopic String Yes TopicA

The topic of the Message Queue for MQTT instance to which the message is sent. For more information about topics, see Terms.

Payload String Yes test

The content of the message. In other words, it is the payload of the message. We recommend that you encode the content in Base64 to avoid transmission of invisible characters.

RegionId String Yes cn-hangzhou

The region ID of the Message Queue for MQTT instance.

Note For more information about these parameters, see Common parameters and Endpoints.

Response parameters

Parameter Type Example Description
MsgId String 0B736D997B7F45FF54E61C1C1B58****

The unique ID of the message. After the message is sent, the Message Queue for MQTT broker returns the message ID.

RequestId String 020F6A43-19E6-4B6E-B846-44EB31DF****

The ID of the request.

Examples

Sample requests

http(s)://onsmqtt.cn-hangzhou.aliyuncs.com/? Action=SendMessage
&InstanceId=post-cn-0pp12gl****
&MqttTopic=TopicA
&Payload=test
&RegionId=cn-hangzhou
&<Common request parameters>

Sample success responses

XML format

<SendMessageResponse>
        <RequestId>020F6A43-19E6-4B6E-B846-44EB31DF****</RequestId>
        <MsgId>0B736D997B7F45FF54E61C1C1B58****</MsgId>
</SendMessageResponse>

JSON format

{
    "RequestId": "020F6A43-19E6-4B6E-B846-44EB31DF****",
    "MsgId": "0B736D997B7F45FF54E61C1C1B58****"
}

Error codes

HTTP status code Error code Error message Description
404 ApiNotSupport The specified API is not supported. The error message returned because the current operation is not supported.
400 CheckAccountInfoFailed An error occurred while checking the account information by the STS token. The error message returned because the account information of the Security Token Service (STS) token failed to be parsed.
400 InstancePermissionCheckFailed An error occurred while validating the permissions of the instance. Please verify the account that created the instance and its permissions settings. The error message returned because instance permission verification failed. Check the ownership and authorization policy of the Message Queue for MQTT instance.
500 InternalError An error occurred while processing your request. Try again later. The error message returned because an internal error occurred to the Message Queue for MQTT instance. Please try again.
400 ParameterCheckFailed An error occurred while validating the parameters. The parameters may be missing or invalid. The error message returned because parameter verification failed. This parameter may be missing or invalid.
400 PermissionCheckFailed An error occurred while validating the resource permissions. Please check the account that created the instance, topic, and GroupId, and check their permission settings. The error message returned because resource permission verification failed. Check the permissions and authorization policies of the instance, topic, and group ID.
500 SendMessageFailed A storage exception occurred while sending the message. Please try again. The message failed to be sent because the backend storage is abnormal. Please try again.
500 SystemOverFlow An error occurred while processing your request. Please try again. The error message returned because throttling is triggered. Please try again.
400 InvalidParameter.%s An error occurred while validating the parameter. The parameter may be missing or invalid. The error message returned because parameter verification failed. This parameter may be missing or invalid.

For a list of error codes, visit the API Error Center.