React Native MQTT.js:我可以选择 TPC/IP 协议吗?

问题描述 投票:0回答:2

我正在开发一个使用 MQTT.js 的 React Native 应用程序。我想知道我是否可以更改协议?默认是 WebSockets,但我想要 TCP/IP 协议。

我试试这个:

let client = mqtt.connect({
  servers: [{ host: '192.168.1.22', port: '8883' }],
  protocol: 'tcp',
  username: 'admin',
  password: 'admin'
})

但是当我打印

client
时它会返回:

{ options:
    { servers: [...],
      protocol: 'ws',
      username: 'admin',
      password: 'admin',
      defaultProtocol: 'ws',
      [...]
    }
}

MQTT.js 支持 WebSocket 之外的其他协议吗?如果是,我如何选择它们?

react-native tcp mqtt
2个回答
0
投票

让我们简化一下,因为您只传递一个代理,所以您可以传递完整的 URI 而不是数组。

let client = mqtt.connect('mqtt://192.168.1.22:1883', {username: 'admin', password: 'admin'});

如果你想使用数组语法那么它应该如下所示:

let client = mqtt.connect({
  servers: [
    {host: '192.168.1.22', port: 1883, protocol: 'mqtt'}
  ],
  username: 'admin',
  password: 'admin'
});

但我在 MQTT 源代码中指出的是它如何检查它将支持哪些协议。如果

process.title
等于
browser
那么它将无法使用 Websockets 以外的任何东西(忽略
wx://
ali://
)。

因此,请在应用程序的开头添加

console.log(process.title)
,以查看是否满足该测试。


0
投票

您是否在 REACT MQTT 上成功建立了 TCP/IP 连接?如果成功的话可以分享给我吗

© www.soinside.com 2019 - 2024. All rights reserved.