4

我已经在我的本地机器上安装了 MQTT 的 mosquitto 客户端。我有以下配置:

listener 1883
protocol mqtt
listener 9001
protocol websockets

在 mqtt 和 websockets 上运行客户端有什么区别。如果我将侦听器更改为端口,还有什么区别?

4

2 回答 2

8

这意味着它会监听 :1883 并期待 MQTT 数据包,还会监听 :9001 并期待 HTTP/Websocket 协议。

有线协议是程序说话的语言。有时合适的谈话是“Yo sup TJ”,有时你应该说“早上好,Marvel先生”。服务器通信也是如此。我们仍在发明更多的语言。

  1. 建立 TCP 连接
  2. 现在我们在谈论 MQTT
  3. 发送标准定义的 MQTT 数据包(发布/订阅/取消订阅)或断开连接
  1. 建立 TCP 连接
  2. 发送带有Upgrade: websocketheader 和其他准备的 HTTP 请求
  3. 除了101 Switching Protocols回应
  4. 现在我们在谈论 Websocket,任何一方都可以发送标准定义的消息

端口是 1 到 65535 范围内的一个数字。IP 地址 + 端口对定义通信的端点。从某种意义上说,端口扩展了 IP 地址空间,以指定您打算向另一台计算机上的哪个程序发送数据。例如,HTTP 服务器通常监听 80 端口。

为了让生活更有趣,有时你会选择随机端口来监听,因为

  • 社区尚未达成共识,哪个适合新应用程序
  • 您的网络管理员只允许某些端口
  • 试图说服自己非标准端口增加了安全性
  • 众所周知的端口已被另一个应用程序占用
  • 只是想玩得开心让其他人感到困惑
于 2016-09-24T19:36:23.163 回答
3

Websocket 上的 Mqtt 客户端(Eclipse Paho javascript客户端)可以从 Web 浏览器运行,如示例(1)所示。普通的 mqtt 客户端运行在 TCP 之上,因此不能直接从 Web 浏览器使用。Websocket 运行在 HTTP 之上,可以直接从 Web 浏览器使用。如果您正在尝试 mosquitto 代理,则需要使用 websocket 支持(2)显式编译它

端口与监听器,参见 mosquitto.conf 文件 ( 3 )。

  • 端口 - 默认使用 mosquitto 代理侦听器。
  • 侦听器 - 通过多次使用此变量,mosquitto 可以侦听多个端口。侦听器还允许设置每个侦听器的最大连接数、协议等。
于 2016-09-24T19:42:24.500 回答