【问题标题】:Difference between port and listener in MQTTMQTT 中端口和监听器的区别
【发布时间】:2016-09-24 17:17:45
【问题描述】:

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

listener 1883
protocol mqtt
listener 9001
protocol websockets

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

【问题讨论】:

    标签: mqtt mosquitto libmosquitto


    【解决方案1】:

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

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

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

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

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

    • 社区尚未达成共识,哪个适合新应用程序
    • 您的网络管理员只允许某些端口
    • 尝试说服自己非标准端口增加了安全性
    • 已知端口已被另一个应用程序占用
    • 只是想开心地迷惑别人

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

      • 是的,这个答案是特定于 MQTT 的,而我的答案通常解释端口和协议。
      猜你喜欢
      • 2012-11-07
      • 2015-11-30
      • 2017-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多