【问题标题】:How to test the `Mosquitto` server?如何测试“Mosquitto”服务器?
【发布时间】:2021-10-05 18:14:28
【问题描述】:

我是MosquittoMQTT 的新手,我下载了Mosquitto 服务器库,但我不知道如何测试它。

有什么方法可以测试Mosquitto 服务器吗?

【问题讨论】:

  • 服务器可以“冒烟测试”(粗略验证它正在运行\可用):这是验证应用程序是否已安装和运行的快速测试(不一定可以正常运行,因为它可能需要配置)。一般来说,冒烟测试是在进行功能验证测试之前进行的。下面提供了一个示例

标签: mqtt mosquitto android-open-accessory


【解决方案1】:

在单独的终端窗口中执行以下操作:

  1. 启动代理:

    mosquitto
    
  2. 启动命令行订阅者:

    mosquitto_sub -v -t 'test/topic'
    
  3. 使用命令行发布者发布测试消息:

    mosquitto_pub -t 'test/topic' -m 'helloWorld'
    

除了在代理终端中查看订阅者和发布者连接消息外,还应在订阅者终端中打印以下内容:

test/topic helloWorld

编辑:

值得指出的是,从 Mosquitto v2.0.0 开始,它默认只会监听环回接口上的连接。如果您想从安装代理以外的机器访问代理,您需要编辑配置文件(并使用-c 选项将其传递给代理,例如mosquitto -c /path/to/mosquitto.conf)以启用对其他接口的侦听。详细信息可以在 v2.0.0 发行说明中找到here

【讨论】:

  • 其实我在终端写mosquitto的时候,说没有识别出这样的命令
  • 听起来你还没有安装它。使用您实际完成的步骤的详细信息更新原始问题,然后我们可能会提供帮助
  • 我只是下载了 zip 文件并解压,没有任何可执行文件可以运行
  • mosquitto_pub 和 mosquitto_sub 命令安装到 C:\Program Files (x86)\mosquitto(在 Win 8 上),您需要确保服务正在运行。在这里工作正常。
  • 如果你在 Mac 上通过 Homebrew 安装 mosquitto,mosquitto 位于 sbin 文件夹中
【解决方案2】:

启动 Mosquitto Broker
打开终端并输入

mosquitto_sub -h 127.0.0.1 -t topic

打开另一个终端并输入
mosquitto_pub -h 127.0.0.1 -t topic -m "Hello"

现在您可以切换到以前的终端,在那里您可以看到“Hello”消息。一个终端充当发布者,另一个充当订阅者。

【讨论】:

  • 重复已经给出的答案有什么价值?
【解决方案3】:

要测试并查看您是否可以从外部世界(您的 VM 或本地机器之外)访问您的 MQTT 服务器,您可以在您的外部机器上安装一个 MQTT 发布和监控工具,例如 MQTT-Spy,然后然后订阅“#”(表示所有主题)。

您可以按照上面他的答案中提到的@hardillb 方法进行操作,并来回测试,例如:

在运行 Mosquitto 服务器的机器上,

在运行 mqtt-spy 的外字机器上,

我主要提到了 mqtt-spy,因为它是多平台且易于使用的。您真的可以使用任何其他工具。 而且据我所知,要运行 mosquitto_submosquitto_pub,您需要在运行测试的 Linux 机器(在我的情况下是 Ubuntu)上安装 mosquitto-clients,这可以通过以下方式轻松完成,

sudo apt-get install mosquitto-clients

【讨论】:

    【解决方案4】:

    如果您使用的是 Windows,请打开命令提示符并输入“netstat -an”。

    如果您的服务器正在运行,您应该能够看到端口 1883。

    如果您无法进入任务管理器 > 服务并从那里启动/重新启动 Mosquitto 服务器。如果你在这里也找不到它,那么你的 Mosquitto 安装还没有成功。

    更详细的tutorial 在 Windows / 中设置 Mosquitto 的链接在这里。

    【讨论】:

      【解决方案5】:

      OP 没有定义测试范围,但是,在投入任何时间进行功能测试之前,应该执行简单(粗略)的“冒烟测试”安装。

      如何测试是否安装了应用程序('smoke-test')

      登录mosquitto服务器的命令行并输入:

      mosquitto
      

      如果安装了 mosquitto,机器将返回:

       mosquitto version 1.4.8 (build date Wed, date of installation) starting
       Using default config.
       Opening ipv4 listen socket on port 1883
      

      【讨论】:

      • @gatorback 我不知道。这种反应的主要原因是什么。
      【解决方案6】:

      如果您希望在不安装任何工具的情况下进行基于 GUI 的代理测试,您可以使用 Hive Mqtt Web 套接字来测试您的 Mosquitto 服务器

      只需访问http://www.hivemq.com/demos/websocket-client/ 并输入服务器连接详细信息。

      如果您已连接,则表示您的服务器配置正确。

      您还可以使用此 mqtt 网络套接字测试 publishsubscribe 的消息

      【讨论】:

      • 只有在 mosquitto.conf 文件中配置了 Websocket 侦听器时才有效。默认情况下,mosquitto 不会启动 Websocker 侦听器。
      • 是的,我忘记了这一点,这不适用于开箱即用的安装,我会更新问题,谢谢
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-13
      • 1970-01-01
      • 1970-01-01
      • 2020-03-21
      • 2015-07-24
      • 2014-03-21
      • 2010-11-01
      相关资源
      最近更新 更多