小编har*_*llb的帖子

MQTT 消息时间戳

我想恢复 MQTT 消息发布时间戳,但在订阅者库中找不到支持。另一方面,我看到 MQTT.fx 客户端能够恢复此信息。有谁知道如何处理?

MQTT。 fx 客户端 -> 消息时间戳

timestamp mqtt

4
推荐指数
1
解决办法
1万
查看次数

Python Paho MQTT:无法在函数中立即发布

我正在实施一个程序,该程序可以收听特定主题并在我的 ESP8266 发布新消息时对其做出反应。当收到来自 ESP8266 的新消息时,我的程序将触发回调并执行一组任务。我在我的回调函数中发布两条消息回到 Arduino 正在侦听的主题。但是,只有在函数退出后才会发布消息。

提前感谢您的所有时间。

我尝试在回调函数中使用超时为 1 秒的 loop(1)。程序会立即发布消息,但似乎卡在了循环中。有人能给我一些指示,如何在我的回调函数中立即执行每个发布函数,而不是在整个回调完成并返回到主 loop_forever() 时?

import paho.mqtt.client as mqtt
import subprocess
import time

# The callback for when the client receives a CONNACK response from the server.
def on_connect(client, userdata, flags, rc):
    print("Connected with result code "+str(rc))

    # Subscribing in on_connect() means that if we lose the connection and
    # reconnect then subscriptions will be renewed.
    client.subscribe("ESP8266")

# The callback for when a PUBLISH message is received from the server.
def …
Run Code Online (Sandbox Code Playgroud)

python mqtt paho

3
推荐指数
1
解决办法
3039
查看次数

有什么方法可以区分新的和保留的 MQTT 消息吗?

就像标题一样,我可以区分新的和保留的 MQTT 消息吗?如何知道客户端何时发布消息?所有这些都无需在主题或消息中指定时间戳字符串。

mqtt

3
推荐指数
1
解决办法
1434
查看次数

Mqtt 客户端如何知道另一个客户端是否已连接

大家好,我的问题是我需要保持设备(客户端)的状态,因为它们是否在线。

我通过客户端 ID 进行连接,通过订阅主题,我可以知道设备已断开连接,但如果它们再次连接,我如何检查它们是否再次连接。

mqtt mosquitto

3
推荐指数
1
解决办法
4568
查看次数

MQTT mosquitto-使用mqttws31.js在JavaScript中实现Websocket

通过包含mqttws32.js文件,使用带有JavaScript的mosquitto Broker和MQTT来实现websocket。

蚊帐版本:1.4.9

一开始我得到了:

rohan@rohan-PC:~$ mosquitto
1470241326: mosquitto version 1.4.9 (build date Fri, 03 Jun 2016 09:22:47 +0100) starting
1470241326: Using default config.
1470241326: Opening ipv4 listen socket on port 1883.
1470241326: Opening ipv6 listen socket on port 1883.
Run Code Online (Sandbox Code Playgroud)

作为最新版本的mosquitto支持Web套接字。

我正在使用以下代码:

client = new Paho.MQTT.Client("localhost", 1883, "myclientid_" + parseInt(Math.random() * 100, 10));
Run Code Online (Sandbox Code Playgroud)

出现错误:

WebSocket与“ ws:// localhost:1883 / mqtt”的连接失败:建立连接错误:net :: ERR_CONNECTION_REFUSED

我的听众得到了:

1470241581: New connection from ::1 on port 1883.
1470241581: Socket error on client <unknown>, disconnecting.
Run Code Online (Sandbox Code Playgroud)

搜索后,我找到了一种解决方案,可将以下行添加到mosquitto.conf文件中

listener 1884
protocol …
Run Code Online (Sandbox Code Playgroud)

javascript websocket mqtt mosquitto

3
推荐指数
1
解决办法
1070
查看次数

Paho-MQTT错误结果代码:5

我设法在RPi中的Paho-MQTT客户端与VPS中的MQTT代理之间建立了连接。

现在,我正在尝试确保MQTT连接的安全,并且已将用户和密码添加到代理中。我更改了mosquitto.conf文件,添加了新的密码文件。

但是现在当我尝试连接我的Paho-MQTT客户端时,出现此错误:

错误结果码:5

这是我的paho-mqtt客户脚本:

#!/usr/bin/env python

import paho.mqtt.client as mqtt
import subprocess
import datetime
import time

# Broker data
broker = *My Broker IP
broker_port = 1883
timeout_reconnect = 60
broker_topic = "#"  #All topics have to be read

# Topic to send payload
topic = "temp/DHT11data"

def on_connect(client, userdata, flags, rc):
    #print("Connect with result code: " + str(rc))
    if int(str(rc)) == 0:
        print("Conexion establecida")
        print ""
    else:
        print("Error result code: " + str(rc))
    #client.subscribe(broker_topic)

def on_message(client, userdata, msg): …
Run Code Online (Sandbox Code Playgroud)

python mqtt

3
推荐指数
1
解决办法
5511
查看次数

为什么HTTP不是消息传递协议?(根据RabbitMQ)

在此RabbitMQ文档中,MQTT,AMQP和STOMP称为支持的消息协议.如果你考虑MQTT,AMQP和STOMP之间的差异,这对我来说是完全可以理解的.但是,在本文的最后,它变得令人困惑.这是关于HTTP的.本段指出"HTTP不是课程而不是消息传递协议".我曾认为RabbitMQ也会以某种方式直接支持HTTP,但仅支持"低容量消息传递"(例如诊断)以及直接在HTML中使用.如果世界上有一半使用HTTP Web api服务,那么为什么HTTP无法在消息传递协议之间共享.为什么HTTP不是消息传递协议,RabbitMQ使用消息传递协议的定义是什么?

http stomp amqp rabbitmq

3
推荐指数
1
解决办法
374
查看次数

paho mqtt 中的 on_message 是否在新线程中运行?

假设我订阅了某个主题,并且 mosquitto 服务器正在持续发布有关该主题的一些消息。

当新消息从 mosquitto 代理到达时,如何调用 on_message 方法?它是在主线程上运行从而阻塞它并仅在处理当前消息时才处理下一条消息,还是在每次新消息到达时使用 on_message 方法生成一个新线程?

import paho.mqtt.client as mqtt

def on_message(client, userdata, message):
    print message.payload
    return True

topics = ["topic1",]
client = mqtt.Client("testclient",protocol=mqtt.MQTTv31,clean_session=True)
client.on_message=on_message
client.connect("127.0.0.1", 1883, 60)
for tpc in topics:
    client.subscribe(tpc,0)
client.loop_forever()
Run Code Online (Sandbox Code Playgroud)

python mqtt paho

3
推荐指数
1
解决办法
3973
查看次数

当使用 MQTT 和 Qos 1 时,不需要从订阅者向代理发送 PUBACK 数据包吗?

我一直试图找出QoS 1的流程,但这很难。

据我了解,当发布者发送一些具有 QoS1 的数据包时,它必须等待 PUB ACK 数据包。

我认为当代理收到 PUB 数据包时,它需要将其发送给所有订阅者。
然后,经纪人也变成了发行商

因此,代理将此 PUB 数据包发送给所有订阅者
,并且代理还等待来自所有订阅者的 PUB ACK 数据包。
当代理收到所有的 PUB ACK 数据包时,然后将 PUB ACK 数据包发送给原始发布者(客户端)。

我对吗?
(有发布者和代理之间的流程的描述,但没有代理和订阅者之间的流程的描述)

broker mqtt

3
推荐指数
1
解决办法
1772
查看次数

Paho-mqtt 订阅一次性消息

有没有一种优雅的方法可以从代理中提取一条消息,而无需:

  1. 订阅
  2. 创建一个 on_message()
  3. 收到消息
  4. 取消订阅

我问这个问题是因为我们使用的是具有多个字段的 json 消息。当新数据进来时,我只想更新 json 消息中的特定字段,但不删除其余数据。由于我们有大量这样的 json 主题,我们并不真的希望将它们全部保留在程序内存中(也是为了防止程序必须重新启动)。最重要的是,该程序可以在没有监督的情况下运行数月。

因此,理想情况下,我想将 json 消息发布到 ID 主题,并将保留标志设置为 True。然后,当该 ID 收到新数据时,我会提取有关该主题的信息,更新 json 消息中的特定字段并重新发布到同一主题。

我可以发布示例代码,但我希望有一个我不知道的简单函数。

在此先感谢您的任何建议。

python json subscribe mqtt

3
推荐指数
1
解决办法
5278
查看次数

标签 统计

mqtt ×9

python ×4

mosquitto ×2

paho ×2

amqp ×1

broker ×1

http ×1

javascript ×1

json ×1

rabbitmq ×1

stomp ×1

subscribe ×1

timestamp ×1

websocket ×1