我正在开发一个使用 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 之外的其他协议吗?如果是,我如何选择它们?
让我们简化一下,因为您只传递一个代理,所以您可以传递完整的 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)
,以查看是否满足该测试。
您是否在 REACT MQTT 上成功建立了 TCP/IP 连接?如果成功的话可以分享给我吗