问题标签 [hivemq]

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 投票
1 回答
106 浏览

hivemq - 具有 3rd 方库依赖项的 HiveMQ 身份验证插件

我正在为 HiveMQ 代理开发一个身份验证插件。我能够集成并启动插件并运行。到目前为止没有问题。

但是,我很少依赖 3rd 方 jars(由插件本身使用)。

我如何将它们添加到类路径中,以便在执行插件时这些 3rd 方 jar 可用于 HiveMQ。

谢谢

0 投票
1 回答
46 浏览

hivemq - 如何将 HiveMQ 插件功能暴露给外部?

我安装了一个 hive mq 代理和一个驻留在代​​理内部的插件。让我们说插件能够获取给定用户 ID 的用户订阅的主题。假设如果最终用户想知道他订阅的主题,一种方法是他将消息发布到插件将侦听的预定义主题,然后获取主题列表,然后将列表发布回用户。我想知道是否有任何其他方式(Http 立即浮现在脑海,但我想在 Hive MQ 插件中不可行)在插件之外公开数据?

在这里发布了同样的问题

0 投票
1 回答
5962 浏览

activemq - 最大 MQTT 连接数

我需要创建一个可以处理 5+ 百万个连接、5+ 百万个主题(每个客户端一个)、处理 300k 消息/秒的服务器场。

我试图查看各种消息代理的能力,因此我目前正在使用两个 RHEL EC2 实例 (r3.4xlarge) 来提供大量可用资源。所以你不需要查,它有 16vCPU,122GB RAM。我离使用限制还差得很远。

我无法通过 600k 连接限制。由于客户端和服务器上似乎都没有任何 O/S 限制(大量的 RAM/CPU/等),是什么限制了我?

我编辑了 /etc/security/limits.conf 如下:

我编辑了 /etc/sysctl.conf 如下:

对于阿波罗:导出 APOLLO_ULIMIT=20000000

对于 ActiveMQ:

我在客户端上为 eth0 创建了 20 个额外的私有地址,然后分配它们:ip addr add 11.22.33.44/24 dev eth0

我完全了解 65k 端口限制,这就是我执行上述操作的原因。

  • 对于 ActiveMQ,我得到了:574309
  • 对于阿波罗,我得到了:592891
  • 对于 Rabbit,我达到了 90k,但伐木很糟糕,尽管我知道有可能,但我不知道该怎么做才能走得更高。
  • 对于 Hive,我的试用限制为 1000。等待许可证
  • IBM 想用我房子的成本来使用它们——不!
0 投票
1 回答
541 浏览

sockets - 到本地代理的 TCP 套接字连接

我试图通过 TCP 套接字连接连接到小型服务器(代理)HiveMQ。当我通过 cmd ping 服务器时,我收到以下消息:

TCP 0.0.0.0:1883 0.0.0.0:0 LISTENING

C中的连接代码是这样的:

addr.sin_family = SL_AF_INET; addr.sin_port = sl_Htons(1883); addr.sin_addr.s_addr = sl_Htonl("0.0.0.0");

我得到这个错误:

Error [-111] at line [926] in function [ConnectionToHiveMq]

这表明我的套接字连接出错:

rc = sl_Connect(mysock, (SlSockAddr_t *) &addr, sizeof(addr));

有人可以帮我弄这个吗?我尝试了许多不同的端口号和 IP:s 但仍然无法正常工作。如果我连接到 Web 上的应用程序客户端,它就可以工作,我可以从该代码订阅消息。但是,当我尝试使用我的 lokal(代理)服务器时,它就...

0 投票
0 回答
136 浏览

rabbitmq - mqtt 3.1.1 为“未订阅”订阅者使用持久会话

将 MQTT 协议评估为聊天服务,以满足连接受限的客户端的 1-1、1-n、nn 通信。

当前的设计是让每个客户默认根据他们的唯一 ID 订阅一个频道,e.g. 'users/9932947'. Messages (payload: JSON) published to this channel would contain a new randomly generated topic, e.g. 'conversations/2938475', for the conversation to continue.

这将允许 1-1、1-n 和 nn 通信。而且,这意味着发送的第一条消息将开始“对话”。通过初始化新消息,可以使用相同的收件人列表开始新的对话。(我假设插件可以处理有效负载中列出的多个收件人,并且处理 1-1,1-n,nn 对话的逻辑将发生在客户端)

然后我面对现实,在 pub/sub 范式中,如果用户 1234 向用户 5678 发送消息,但用户 5678 还没有订阅,那么消息就会丢失,在某些情况下,这会很糟糕。使用“保留”标志并不理想,因为可能会发送多条消息。

因此,一旦订阅者收到消息,逻辑流程将指示接收者订阅有效负载中标识的新主题。我可能打破了 pub/sub 范式,或者在动态主题和消息过期方面我遗漏了一些东西。

知道我的代理/队列系统可以从我的联系人数据库中消费,是否可以为用户自动创建持久性会话并且这些用户订阅这些随机生成的主题/对话?这是一个糟糕的设计吗?缩放有任何问题吗?

0 投票
2 回答
3107 浏览

mqtt - 桥接 mqtt 代理 hivemq 和 mosquitto

我正在尝试在同一系统上桥接两个 MQTT 代理,HiveMQ并且Mosquitto. HiveMQ正在端口上工作1884Mosquitto正在运行1883。但是,当我使用mosquitto_pub命令在端口发布到mosquitto代理时1883,它不会显示在端口上1884MQTT.fx用作订阅端口上所有主题的客户端1884

这是我只为mosquitto代理配置了一个网桥。当我也配置时HiveMQ,它只在命令窗口上显示一条unable to connect to Bridge1, disconnected消息。HiveMQ我已经包含了下面的配置。有人请帮忙。

mosquitto.config文件中,我在bridges.

同时,我还编辑了HiveMQ bridges.xml文件以读取

下图是当我在另一个系统上尝试相同的过程时。 在这里,经纪人被桥接。 与我之前所做的比较,唯一的区别是在我的原始系统上没有声明说在 1883 上打开 ipv4 侦听套接字。这是问题吗?

显示的图像是当我在另一个系统上尝试相同的过程时。在这里,经纪人被桥接。与我之前所做的比较,唯一的区别是在我的原始系统上没有声明说在 1883 上打开 ipv4 侦听套接字。这是问题吗?

0 投票
1 回答
1394 浏览

java - 如果新连接带有相同的客户端 ID,是否可以在服务器端断开具有相同客户端 ID 的旧 mqtt 连接?

我正在使用通过 websocket 配置 mqtt 的 ActiveMQ 5.11.1。

如果新连接带有相同的客户端 ID,是否可以在服务器端断开具有相同客户端 ID 的旧 mqtt 连接?

当我使用hivemq websocket尝试这种情况时,我收到如下错误消息。

2015-06-18 20:03:06,074 | WARN | Transport Connection to: MQTTSocket_22078239 failed: java.io.IOException: Broker: localhost - Client: abc already connected from MQTTSocket_24236395 | org.apache.activemq.broker.TransportConnection.Transport | qtp20829588-40

0 投票
1 回答
1492 浏览

windows - 无法使用 javascript 客户端连接到 mqtt 代理

我收到错误

SCRIPT12152:WebSocket 错误:网络错误 12152,服务器返回无效或无法识别的响应

在 IE 中,和

WebSocket 连接到“ws://192.168.1.100:1883/”失败:连接在收到握手响应之前关闭

在 chrome.. 下面是我用过的一段代码

0 投票
2 回答
249 浏览

python - HiveMQ 和物联网控制

我最近在 Ubuntu 机器上安装了 HiveMQ,一切正常。作为 Linux 新手(我更喜欢 Windows 人),我被以下问题困扰。

  1. 我使用 ./bin/run.sh 的命令启动了 HiveMQ。将打开一个窗口并确认 HiveMQ 正在运行。太好了!!!。我从 putty 开始,当我关闭 putty 时,HiveMQ 也会停止。如何让 HiveMQ 一直运行?

  2. 我将 HiveMQ 用于我的 IoT 项目(树莓派)。我知道从 python 订阅和发布到 HiveMQ 代理,但让我感到困惑的是,我是否应该连续运行 python 程序来完成这项工作?假设我需要在 Pi 上触发 2+ GPIO,我可以编写一个程序并通过使其订阅 2+ 主题的触发事件来保持其运行?

任何帮助是极大的赞赏。

谢谢

0 投票
0 回答
161 浏览

javascript - HiveMQ Websockets JavaScript

我正在尝试使用可用的教程重新创建启用 Web 套接字的应用程序

http://www.hivemq.com/build-javascript-mqtt-web-application/

有角度和引导。

这是我的示例代码:

这是我试图填充消息的文本框的 html 代码。

问题是,在 Web 浏览器的控制台中,我可以看到 $log.info($scope.tweet)打印已发布的消息,但文本框没有被填充。为什么会发生这种情况?谢谢

这是控制器的完整代码

(function () { var HomeController = function ($scope, $log, $modal) {

IotApp.controller("HomeController", HomeController);

}());