我在使用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支持WebSockets以外的其他协议吗?如果是,我如何选择它们?
答案 0 :(得分: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)
,以查看该测试是否得到满足。