问题标签 [mqtt]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
4915 浏览

android - 解释 ANR 堆栈跟踪

我正在使用 Android 中 PAHO 库中的 MQTT 客户端实现。有时,应用程序在尝试发布消息时锁定(我认为),我无法弄清楚发生了什么。

我也提前为所有长篇文章道歉。我真的不知道重要的部分是什么,所以“剧透”标签>! 无法隐藏细节。

MQTT 客户端在单独的线程中工作,但我正在从 UI 线程调用 mqtt 客户端实例。也许这会导致锁定?我是否应该将客户端定义为线程的实例并在线程中调用将操作转发给客户端的方法?

当应用程序挂起时,一段时间后 ANR 会启动并要求关闭应用程序。当我这样做时,我会从 /data/anr/traces.txt 中为我的进程获得以下堆栈跟踪:

我已经打开了严格模式,并且确实得到了一些痕迹,它会警告磁盘写入,但它们都不是特别长。这些是严格模式跟踪:

编辑:这就是我启用 StrictMode 的方式

编辑 2:以供将来参考并添加问题的原因,我认为我应该在此处放置一些内容以供搜索引擎查找。

原来问题出在我们拥有的基于 Node.JS 的代理 mqttjs 上。这可能只是我们的实现,我还没有测试过 mqttjs 开发人员的示例。在发布了一定数量的消息后,代理停止发布和返回令牌。MQTT 客户端在另一个线程中运行,但由于它是从 UI 线程调用的,因此导致了一些问题。

无论如何,我们改用 Mosquitto,现在一切正常。

0 投票
2 回答
1485 浏览

android - 如何在没有端口转发的情况下远程访问 LAN 网络(嵌入式)设备?

我环顾四周,并没有找到我正在寻找的确切答案,所以如果这是重复的,请原谅我。如果是这样,请指导我回答。谢谢。

我有一个嵌入式传感器/执行器系统,可以通过 wifi 连接到我的 LAN。

有哪些可能的软件/协议解决方案,以便我可以使用 iPhone/Android(即通过 3G/4G)和/或远程 PC 从我的网络外部与它进行远程通信和控制?

我不想为端口转发配置我的路由器。

以下是其他一些注意事项:

  • 嵌入式处理平台非常有限(即它不是 ARM)
  • 安全性很重要(即不希望其他人能够轻松访问)
  • 可扩展性——如果这个项目商业化,这个模型对很多很多用户的可扩展性很重要
  • 用户简单(即最终用户没有凌乱的配置要求)

我听说过一些关于 MQTT 的信息,看起来它可能是一个解决方案,但我不确定安全性。对此有什么想法吗?

还有其他免费的选择吗?

非常感谢,布赖恩

0 投票
1 回答
1868 浏览

java - 在 Paho 中建立连接时的回调

我正在使用 Eclipse MQTT 库 Paho,但我找不到确定客户端与代理的​​连接何时建立的方法。有谁知道目前是否有办法做到这一点?

我似乎在文档的 MqttCallback 类中找不到任何有关此的信息,也找不到它的错误或功能请求。

谢谢。

0 投票
2 回答
2065 浏览

gcc - Mosquitto with Cygwin

I want to run Mosquitto on Windows using Cygwin and I have installed Cygwin and downloaded Mosquitto as they describe on Mosquitto's site.

I have a simple example-file taken from mosquitto's site.

When I compile with this gcc-line:

I get this error output:

I dont know how top go from here...

Appreciate any kind of help!

0 投票
1 回答
388 浏览

tcp-ip - mqtt 究竟依赖 tcp 做什么?

mqtt 究竟依赖 tcp 做什么?就像没有TCP它可以生存吗?我得到了面向连接的协议和东西,但是 MQTT 和 TCP 之间的关系还有更多吗?

0 投票
2 回答
2263 浏览

jms - Open MQ 使用哪种传输协议?

我听 IBM 的一个人谈论MQTT,他说 MQTT 是迄今为止最轻量级的消息传递协议。他的论点是单个消息产生的最小开销是 2 个字节。但是,我也听说过关于 HTML5 WebSockets 的相同(2 字节开销)?无论如何,因为我计划使用Open MQ作为消息传递应用程序的 JMS 提供程序,所以我的提供程序使用的协议引起了我的兴趣。我在任何地方都找不到该问题的答案,我什至搜索了 Open MQ 文档和使用 Open MQ 作为 JMS 提供程序的 GlassFish 文档。Internet 上的一些博客文章等说AMQP,但我找不到可靠的参考来支持该声明。

Open MQ 使用哪种协议,您怎么知道?

0 投票
1 回答
310 浏览

java - MQTT我发布后是否可以取回令牌号

我将 MQTT 用于 POC,我需要的是我已发布到该主题的消息的参考 ID。有 MqttDeliveryToken ,但它没有给出令牌编号作为其名称。

它给出isdeliveryComplete and getMessage的不是任何类型的参考编号。

基本上我需要一个参考号。例如:当我们在票务系统中提出票时,我们会得到一个票号以供将来参考。那种东西。

0 投票
1 回答
2053 浏览

android - 如何在这个特定的 Android 用例中实现 MQTT?

我的用例:登录我的应用程序的用户应该能够向在另一台 Android 设备上登录应用程序的自己发送消息。如果用户有多个设备,那么一旦他打开消息,其他设备上的通知必须消失。

疑点:

  1. 如何跨设备向特定用户发送数据?我了解如何使用 GCM 向不同设备上的不同用户发送消息,但这似乎相当混乱。

  2. 如何在具有足够安全性的 MQTT 中实现这一点?我尽可能多地阅读了有关安全性的内容,并得出结论认为 MQTT 不负责它,我必须在代理级别实施我自己的安全措施。到目前为止,Mosquitto 代理允许用户名/密码身份验证,但对于实现 Oauth 的应用程序,用户名/密码似乎相当容易受到攻击。

还是我应该转到 XMPP?

0 投票
3 回答
4095 浏览

java - 如何在 Eclipse PAHO Java MQTT 客户端和 Mosquitto 代理之间创建 PSK 连接?

我正在尝试在 mosquitto mqtt 代理和使用 Eclipse Paho 客户端库的 Java 编写的应用程序之间配置预共享密钥加密连接。

我已经成功地在两者之间建立了连接,没有使用加密,并且使用了服务器证书经过身份验证但没有客户端证书的 SSL。

我想通过使用预共享密钥来加密连接(身份验证不重要),蚊子经纪人肯定支持,但我不确定 Eclipse Paho 库是否支持它。

该库为您提供了两种不同的方式来配置安全连接。要么通过

方法 - 利用以下属性:

或通过

方法。

有没有人对我正在使用的工具和库有任何经验,有人可以就我如何能够使某些东西正常工作提供任何建议吗?

是否有可能创建一个 ssl 套接字工厂,它能够返回一个可以处理我需要的 PSK 实现的套接字?

谢谢你的帮助 :-)

0 投票
1 回答
828 浏览

android - 实现 Android 通知应用程序的最省电方式

我正在开发一个 Android 通知应用程序,它在 MQTT 消息中获取 XML 数据以构建通知,但还包含在单击通知时执行 Intent 的数据。我通过使用 Polling/Pull 消息实现了 Push 消息,因为我认为等待消息到达并对其执行某些操作会比轮询 Web 服务器以获取更新和解析可能没有任何新数据的结果更有效。

但是,Android 的默认省电方案会在屏幕关闭时关闭 wi-fi 以节省电量,这意味着我与 MQTT 服务器的连接断开。当我返回屏幕时,我的服务器连接重新建立,MQTT 服务器上的最后一条消息被传递。

所以现在我面临一个选择。在我的服务代码中实现 wi-fi 锁定,或使用警报管理器让我的服务定期唤醒,检查 MQTT 发布然后退出。

这个wifi 唤醒锁与警报管理器表明 wifilocks 非常低效,我应该使用警报管理器。如果是这种情况,我就会失去推送通知的“即时交付”优势,并且有效地轮询数据。谷歌的云消息/WhatsApp/Viber 等应用程序如何在通过保持 Wi-Fi 处于活动状态的情况下允许设备休眠且不耗尽电池的同时进行即时消息传递?