文档首页 > > 用户指南> 附录> HTTP(S)终端节点使用样例> HTTP(S)消息格式

HTTP(S)消息格式

分享
更新时间: 2019/11/29 GMT+08:00

操作场景

描述SMN服务向HTTP(S)终端发送消息的格式,您可以通过消息头部信息中的消息类型来区分消息格式。消息格式包括:HTTP(S)订阅确认消息的格式、HTTP(S)推送消息的格式和HTTP(S)取消订阅消息的格式三种消息格式。

当SMN服务向HTTP(S)终端发送消息时,头部包括请求X-SMN-TOPIC-URN,X-SMN-MESSAGE-ID,X-SMN-MESSAGE-TYPE,X-SMN-SUBSCRIPTION-URN,如表1所示。

表1 消息HTTP头部参数说明

参数

说明

X-SMN-MESSAGE-TYPE

消息类型,消息类型分别有:

  • SubscriptionConfirmation
  • Notification
  • UnsubscribeConfirmation

X-SMN-MESSAGE-ID

消息唯一标识。

X-SMN-TOPIC-URN

主题的唯一标识,表示消息归属的主题。

X-SMN-SUBSCRIPTION-URN

订阅终端的唯一标识。

HTTP(S)订阅确认消息的格式

添加HTTP(S)订阅终端以后,SMN会向订阅终端推送一条订阅确认的消息,下面将描述消息的HTTP Content,它是JSON格式的字符串,其中包括subscribe_url值,订阅确认需要GET请求subscribe_url地址进行确认,具体JSON 字段说明如表2所示。

表2 HTTP(S)订阅确认消息的格式参数说明

参数

说明

type

消息类型,SubscriptionConfirmation。

signature

签名信息。

签名字段包括message,message_id,subscribe_url,timestamp,topic_urn和type,具体签名信息校验,请参见校验消息签名

topic_urn

主题的唯一标识,表示消息归属的主题。

message_id

消息唯一标识。

signature_version

签名的版本信息,目前是V1。

message

订阅确认消息的描述。

subscribe_url

订阅确认需要访问的URL。

signing_cert_url

用于消息签名的证书URL。

timestamp

消息第一次发送的时间戳。

HTTP(S)订阅确认消息样例如下:
{
    "signature": "ViE96uGbBkl+S8eWqgebi5KdmRht2U8+Rs88yuyMHq1k4h3jUkcDZ6HCqTqdpJ8nrLcdqETyyEiOQyTszJdU05z+LhfE8jerCCdSbL4zeInVkydHh0kcCRWmORye0/EuQ/gLC1UIXwvUsqbUCPnBRhNFXOeXMOPPCzK+d04xjy4QHd1H/bHxgsY3AlTe0gCFT068Zru7OK6w9aQaY44mXnN3OWGmBmoHyFab5TRXLSQNz/9u/Vj646cQMMaI0PPQ30QzGYD0MtzgDZi12m8jMTHAnMkTEcbLaEgaqmaoEnATSpEcspFKNXv2skwk7rsVakMOISpMH3+qC6RzhETA2A==",
    "topic_urn": "urn:smn:region01:0553db98c800d5192f9bc01232b89622:vpc_status_report_topic",
    "message_id": "d86c201092574e71a3ca85826652c58b",
    "signature_version": "v1",
    "type": "SubscriptionConfirmation",
    "message": "{\"enterpriseProjectId\": \"0\", \"eventTime\": \"2019-08-12 22:40:55.040632\", \"chargingMode\": \"postPaid\", \"cloudserviceType\": \"hws.service.type.bandwidth\", \"eventType\": 1, \"regionId\": \"region01\", \"tenantId\": \"057eefe55400d2742f8cc0017870ceef\", \"resourceType\": \"hws.resource.type.bandwidth\", \"resourceSpecCode\": \"19_bgp\", \"resourceSize\": 10, \"resourceId\": \"e091f1b1-08ef-4e2b-a27e-f85e4c19026a\", \"resouceSizeMeasureId\": 15, \"resourceName\": \"elbauto_2019_08_13_06_40_46\"}",
    "subscribe_url": "https://console.xxx.com/smn/subscription/unsubscribe?subscription_urn=urn:smn:region01:0553db98c800d5192f9bc01232b89622:vpc_status_report_topic:653e212a43884f7188ca656c537e31ce",
    "signing_cert_url": "https://console.xxx.com/smn/SMN_region01_b3974c411807498bb532b3cd6cd65d91.pem",
    "timestamp": "2019-08-12T22:40:56Z"
}

HTTP(S)推送消息的格式

HTTP(S)订阅终端订阅确认后,终端将收到SMN推送的消息,下面将描述HTTP Content信息,它是JSON串,具体字段说明如表3所示。

表3 HTTP(S)推送消息的格式参数说明

参数

说明

type

消息类型,Notification。

signature

签名信息。

签名字段包括message,message_id,subject, timestamp,topic_urn和type,具体签名信息校验,如果subject不存在,则不参与校验,请参见校验消息签名

subject

消息标题。

topic_urn

主题的唯一标识,表示消息归属的主题。

message_id

消息唯一标识。

signature_version

签名的版本信息,目前是V1。

message

订阅推送消息的描述。

unsubscribe_url

通过访问该链接可以取消终端订阅。

signing_cert_url

用于消息签名的证书URL。

timestamp

消息第一次发送的时间戳。

HTTP(S)推送消息样例如下:
{
    "signature": "ViE96uGbBkl+S8eWqgebi5KdmRht2U8+Rs88yuyMHq1k4h3jUkcDZ6HCqTqdpJ8nrLcdqETyyEiOQyTszJdU05z+LhfE8jerCCdSbL4zeInVkydHh0kcCRWmORye0/EuQ/gLC1UIXwvUsqbUCPnBRhNFXOeXMOPPCzK+d04xjy4QHd1H/bHxgsY3AlTe0gCFT068Zru7OK6w9aQaY44mXnN3OWGmBmoHyFab5TRXLSQNz/9u/Vj646cQMMaI0PPQ30QzGYD0MtzgDZi12m8jMTHAnMkTEcbLaEgaqmaoEnATSpEcspFKNXv2skwk7rsVakMOISpMH3+qC6RzhETA2A==",
    "topic_urn": "urn:smn:region01:0553db98c800d5192f9bc01232b89622:vpc_status_report_topic",
    "message_id": "d86c201092574e71a3ca85826652c58b",
    "signature_version": "v1",
    "type": "Notification",
    "message": "{\"enterpriseProjectId\": \"0\", \"eventTime\": \"2019-08-12 22:40:55.040632\", \"chargingMode\": \"postPaid\", \"cloudserviceType\": \"hws.service.type.bandwidth\", \"eventType\": 1, \"regionId\": \"region01\", \"tenantId\": \"057eefe55400d2742f8cc0017870ceef\", \"resourceType\": \"hws.resource.type.bandwidth\", \"resourceSpecCode\": \"19_bgp\", \"resourceSize\": 10, \"resourceId\": \"e091f1b1-08ef-4e2b-a27e-f85e4c19026a\", \"resouceSizeMeasureId\": 15, \"resourceName\": \"elbauto_2019_08_13_06_40_46\"}",
    "unsubscribe_url": "https://console.xxx.com/smn/subscription/unsubscribe?subscription_urn=urn:smn:region01:0553db98c800d5192f9bc01232b89622:vpc_status_report_topic:653e212a43884f7188ca656c537e31ce",
    "signing_cert_url": "https://console.xxx.com/smn/SMN_region01_b3974c411807498bb532b3cd6cd65d91.pem",
    "timestamp": "2019-08-12T22:40:56Z"
}

HTTP(S)取消订阅消息的格式

HTTP(S)订阅终端取消订阅确认后,终端将收到SMN推送的取消订阅确认消息,下面将描述HTTP Content信息,它是JSON串,具体字段说明如表4所示。

表4 HTTP(S)取消订阅消息的格式参数说明

参数

说明

type

消息类型,UnsubscribeConfirmation。

signature

签名信息。

签名字段包括message,message_id,subscribe_url、timestamp,topic_urn和type,具体签名信息校验,请参见校验消息签名

topic_urn

主题的唯一标识,表示消息归属的主题。

message_id

消息唯一标识。

signature_version

签名的版本信息,目前是V1。

message

取消订阅确认消息的描述。

subscribe_url

再次订阅确认需要访问的URL。

signing_cert_url

用于消息签名的证书URL。

timestamp

消息第一次发送的时间戳。

HTTP(S)取消订阅消息样例如下:
{
    "signature": "ViE96uGbBkl+S8eWqgebi5KdmRht2U8+Rs88yuyMHq1k4h3jUkcDZ6HCqTqdpJ8nrLcdqETyyEiOQyTszJdU05z+LhfE8jerCCdSbL4zeInVkydHh0kcCRWmORye0/EuQ/gLC1UIXwvUsqbUCPnBRhNFXOeXMOPPCzK+d04xjy4QHd1H/bHxgsY3AlTe0gCFT068Zru7OK6w9aQaY44mXnN3OWGmBmoHyFab5TRXLSQNz/9u/Vj646cQMMaI0PPQ30QzGYD0MtzgDZi12m8jMTHAnMkTEcbLaEgaqmaoEnATSpEcspFKNXv2skwk7rsVakMOISpMH3+qC6RzhETA2A==",
    "topic_urn": "urn:smn:region01:0553db98c800d5192f9bc01232b89622:vpc_status_report_topic",
    "message_id": "d86c201092574e71a3ca85826652c58b",
    "signature_version": "v1",
    "type": "UnsubscribeConfirmation",
    "message": "{\"enterpriseProjectId\": \"0\", \"eventTime\": \"2019-08-12 22:40:55.040632\", \"chargingMode\": \"postPaid\", \"cloudserviceType\": \"hws.service.type.bandwidth\", \"eventType\": 1, \"regionId\": \"region01\", \"tenantId\": \"057eefe55400d2742f8cc0017870ceef\", \"resourceType\": \"hws.resource.type.bandwidth\", \"resourceSpecCode\": \"19_bgp\", \"resourceSize\": 10, \"resourceId\": \"e091f1b1-08ef-4e2b-a27e-f85e4c19026a\", \"resouceSizeMeasureId\": 15, \"resourceName\": \"elbauto_2019_08_13_06_40_46\"}",
    "subscribe_url": "https://console.xxx.com/smn/subscription/unsubscribe?subscription_urn=urn:smn:region01:0553db98c800d5192f9bc01232b89622:vpc_status_report_topic:653e212a43884f7188ca656c537e31ce",
    "signing_cert_url": "https://console.xxx.com/smn/SMN_region01_b3974c411807498bb532b3cd6cd65d91.pem",
    "timestamp": "2019-08-12T22:40:56Z"
}
分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区