MQTT中端口和监听的区别

Difference between port and listener in MQTT

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

listener 1883
protocol mqtt
listener 9001
protocol websockets

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

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

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

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

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

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

  • 社区尚未就哪一个适合新应用达成共识
  • 您的网络管理员只允许某些端口
  • 尝试说服自己 non-standard 端口增加了安全性
  • 众所周知的端口已被另一个应用程序占用
  • 只是想找点乐子去迷惑别人

websocket 上的 Mqtt 客户端(Eclipse Paho javascript client) could be run from a web browser as in example(1). Normal mqtt clients runs on top of TCP and hence cannot be used directly from a web browser. Websockets run on top of HTTP and could be used directly from web browsers. If you are trying mosquitto broker, then it need to be compiled explicity with websocket support(2

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

  • 端口 - 默认使用 mosquitto 代理侦听器。
  • Listener - 通过多次使用这个变量,mosquitto 可以 监听多个端口。侦听器还允许设置每个侦听器的最大连接数、协议等。