Step By Step
- AMQP客户端连接
- 消息监听
- 响应设备端
- 查看结果
一.AMQP客户端连接
accessKey | LTAI4GFGQvKuqHJhFa****** | 登录物联网平台控制台,将鼠标移至账号头像上,然后单击AccessKey管理,获取AccessKey ID和AccessKey Secret。 说明 如果使用RAM用户,您需授予该RAM用户管理物联网平台的权限(AliyunIOTFullAccess),否则将连接失败。授权方法请参见授权RAM用户访问物联网平台。 |
accessSecret | iMS8ZhCDdfJbCMeA005sieKe****** | |
consumerGroupId | VWhGZ2QnP7kxWpeSSjt****** | 消费组ID。 登录物联网平台控制台,在对应实例的规则引擎 > 服务端订阅 > 消费组列表查看您的消费组ID。 |
iotInstanceId | iot-***j | 实例ID。您可在物联网平台控制台的实例概览页面,查看当前实例的ID。
|
clientId | 12345 | 表示客户端ID,建议使用您的AMQP客户端所在服务器UUID、MAC地址、IP等唯一标识。长度不可超过64个字符。 登录物联网平台控制台,在对应实例的规则引擎 > 服务端订阅 > 消费组列表,单击消费组对应的查看,消费组详情页将显示该参数,方便您识别区分不同的客户端。 |
conn | stomp.Connection([('iot-cn-***.amqp.iothub.aliyuncs.com', 61614)]) | 创建AMQP客户端与物联网平台的TLS连接。
|
conn.set_ssl | for_hosts=[('iot-cn-***.amqp.iothub.aliyuncs.com', 61614)], ssl_version=ssl.PROTOCOL_TLS |
二.消息监听
on_message方法监听
frame |
"{cmd=MESSAGE,headers=[{'qos': '1', 'destination': '/productKey/deviceName/user/get', 'message-id': 'XXXX', 'topic': '/productKey/deviceName/user/get', 'subscription': '1', 'generateTime': '1653539187524'}],body=13}" |
消息整体 |
frame.headers.get("topic") |
"/productKey/deviceName/user/get" |
消息Topic |
frame.body |
13 |
消息内容 |
三.响应设备端
fromaliyunsdkcoreimportclientfromaliyunsdkiot.request.v20180120importPubRequestaccessKeyId='XXXX'accessKeySecret='XXXX'clt=client.AcsClient(accessKeyId, accessKeySecret, 'cn-shanghai') defsettest(pk,topic,message): request=PubRequest.PubRequest() request.set_accept_format('json') # 设置返回数据格式,默认为XML,此例中设置为JSONrequest.set_ProductKey(pk) request.set_TopicFullName(topic) # 消息发送到的Topic全名request.set_MessageContent(message) # hello world Base64 Stringrequest.set_Qos(0) result=clt.do_action_with_exception(request) print("cc", result)
四.查看结果