- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 Mosquitto 和 python 将文件发布到 AWS IoT。我需要发布的文件是本地目录中的 jpg 文件。我有将数据发布到物联网所需的 key 和访问 key 。我对编程很陌生,不知道如何编写这个程序。有人能帮助我吗?如果这是非常基本的事情,我很抱歉。谢谢
我已经尝试过这个How can I publish a file using Mosquitto in python?并且不适合我。
这就是我厌倦的做法。
> #!/usr/bin/python
import mosquitto import sys
import ssl
import paho.mqtt.client as mqtt
f = open("data")
imagestring = f.read()
byteArray = bytes(imagestring)
client.publish("photo", byteArray ,0)
#called when a message is received by a topic
def on_message(mqttc, obj, msg):
print("Received message from topic: "+msg.topic+" | QoS: "+str(msg.qos)+"Data Received: "+str(msg.payload))
#creating a client with client-id=mqtt-test
mqttc = mqtt.Client(client_id="mqtt-test")
mqttc.on_connect = on_connect
mqttc.on_subscribe = on_subscribe
mqttc.on_message = on_message
#Configure network encryption
mqttc.tls_set("/home/username/root-CA.crt",
certfile="/home/username/6fdda68178-certificate.pem.crt",
keyfile="/home/username/6fdda68178-private.pem.key",
tls_version=ssl.PROTOCOL_TLSv1_2,
ciphers=None)
#connecting to aws-account-specific-iot-endpoint
mqttc.connect("A2DL8ZE59089FKF.iot.us-west-2.amazonaws.com", port=8883)
#the topic to publish to
mqttc.subscribe("$aws/things/mqtt-listener/shadow/update/#", qos=1)
#automatically handles reconnecting
mqttc.loop_forever()
最佳答案
看起来你的代码中有些东西是倒退的,或者至少难以理解。以下是将二进制文件上传到 AWS IOT 的一些工作代码示例。
#!/usr/bin/python
import paho.mqtt.client as paho
import os
import socket
import ssl
from time import sleep
from random import uniform
connflag = False
def on_connect(client, userdata, flags, rc):
global connflag
connflag = True
print("Connection returned result: " + str(rc))
mqttc = paho.Client()
mqttc.on_connect = on_connect
awshost = "YOURAWSHOST.iot.us-west-2.amazonaws.com"
awsport = 8883
caPath = "root-CA.crt"
certPath = "YOURCERT.pem.crt"
keyPath = "YOURKEY.pem.key"
mqttc.tls_set(caPath, certfile=certPath, keyfile=keyPath, cert_reqs=ssl.CERT_REQUIRED, tls_version=ssl.PROTOCOL_TLSv1_2, ciphers=None)
mqttc.connect(awshost, awsport, keepalive=60)
mqttc.loop_start()
while 1==1:
sleep(0.5)
f = open('mybinaryfile')
imagestring = bytearray(f.read())
f.close()
message = '"image": { "bytearray": "' + imagestring + '"} } '
mqttc.publish("$aws/things/rpi/shadow/update", message, qos=1)
请记住,您发布的消息必须很小 - 最大大小为 128KB。如果您有大图像,您可能需要循环图像并将其读取为小于 128KB(+ 开销)的 block ,并将每个图像的多个图像上传到 AWS IOT,直到上传整个图像。
-雷
关于python - 如何使用 Python 中的 Mosquitto 将文件发布到 AWS-IoT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35882134/
我想在 RPi 上的 docker 中运行 eclipse-mosquitto mqtt 服务器。 我用来运行它的命令是: docker run --name mqtt --restart=alway
我有一个运行多个 Docker 容器的 linux 系统。其中之一是从 mosquitto 1.6.7 docker 镜像运行的 mosquitto 容器。 我无法控制 Mosquitto 容器的创建
我正在尝试使用 TLS 通过 mqtt 进行通信。我的系统中安装了 ubuntu。为了使用 TLS,我使用以下链接创建了证书: http://www.embedded101.com/Blogs/Pao
我已经在我的 ARM 目标板上实现了 mosquitto。 我在Makefile中添加了-DWITH_SRV,因为我需要在我的系统中添加SRV Loopup函数。 但是返回错误 fatal error
我正在为 mosquitto MQTT 代理(版本 1.5)实现一个插件,我正在努力访问我的插件实现中指向 mosquitto 客户端结构的指针的某些元素: #include ... int mos
在mosquitto broker中,有一些写事件日志文件的配置。我正在使用以下配置并运行代理。 log_type all log_dest file /root/Files/mosquitto.lo
我正在使用 mosquitto 作为 MQTT 代理,虽然它提供了广泛的日志记录功能,但我无法找到如何将实际主题的消息记录到文件中(甚至是按主题排序的文件树,甚至数据库)。我看到了 log_desc
我有一个负载均衡器,即 aws elb 所有的 pub/sub 都将通过那个 elb 来 elb 下的两个蚊子经纪人 A 和蚊子经纪人 B 一个 mosquitto 代理在这两个代理之间同步主题(mo
Mosqitto ( http://mosquitto.org/ ) 支持哪些消息队列? 另外我想知道在 MQTT 协议(protocol)中,为每个主题创建不同的消息队列,或者在内存限制的情况下可以
我已经在我的 ubuntu 机器上安装了 mosquitto 服务器和客户端软件包。当我运行命令“mosquitto”来运行 mosquitto 服务器时,我收到错误“错误:地址已在使用中”。为什么我
我正在尝试增加 Mosquitto 代理的最大打开文件连接。但是我读到增加的并发连接不仅仅由 Mosquitto 控制。 根据我们的研究,我们决定 100k 并发连接,我们的目标是 1.6 GB RA
我正在使用 C 语言的 mosquitto 代理和 Paho 客户端库。我希望代理只允许发布一定数量的消息,并阻止任何超过该数量的消息。我尝试将配置中的最大飞行消息选项设置为某个数字,但它不起作用。在
我一直在尝试使用 mosquitto lib 开发 C 代码,通过 TLS 在 mosquitto 代理上发布消息。我在 mosquitto 端配置了 TLS,效果很好。我能够使用 mosquitto
我有一个在 Android 中运行的 MQTT 客户端,以及一个在服务器中运行的 MQTT 代理。我的问题是我们将在哪里使用应用程序,我们有一些连接断开,所以我的网络应用程序需要知道客户端的当前状态。
我在使用 libmosquitto 开发 iOS 应用程序时遇到了一些问题 在我的代码中AppDelegate.swift import UIKit @UIApplicationMain class
我想知道是否有一种方法可以将 Mosquitto 配置为在连接到外部客户端时需要 TLS 和客户端证书,而不需要内部客户端的 TLS 和客户端证书。我应该对 CA(证书颁发机构)或 .conf 文件做
我正在使用 mosquitto 1.4.10。 我有一个客户端,可以批量向同一主题发布多条消息(例如,每批 50 条消息)。客户端将每隔几秒发送一次每个批处理(例如,每 5 秒)。发送一批或几批后,在
我想在更改时重新加载 mosquitto 密码文件。是否可以在 Windows 上发送 SIGHUP(“信号挂断”)或类似的 mosquitto 服务器? 最佳答案 这是可以做到的。首先,您必须设置
我如何制作一个像 mosquitto-auth-plug 这样的插件用于授权,或者一个用于存储消息有效负载或其他用途的插件?我应该用 C 编写还是可以使用 python? 最佳答案 任何用于 mosq
我已经实现了一个不安全的 mosquitto 代理,它可以通过端口 1883 定期发送大量数据(每分钟约 200kb 文件)。 由于我已经实现了 TLS,尽管设置了 message_size_limi
我是一名优秀的程序员,十分优秀!