react-native - React Native MQTT.js:我可以选择 TPC/IP 协议吗?
问题描述
我在一个使用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 以外的其他协议?如果是,我如何选择它们?
解决方案
让我们简化一下,因为您只传递一个代理,您可以传递完整的 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://
and ali://
)。
因此,在您的应用程序的开头添加一个console.log(process.title)
以查看该测试是否得到满足。
推荐阅读
- python - 在 smtplib 电子邮件中使用消息功能
- python - 如何创建一个返回嵌入在记录中的值的函数?
- excel-formula - Excel - 从单独的列/数组中搜索精确字符串的单元格文本......需要完全匹配
- slack - 如何让 Slack Bot 不回复私人群组中的所有消息?
- tensorflow - 使用英特尔 mkl 的张量流性能下降
- visual-studio-code - 如何在 VSCode 调试器中禁用“只是我的代码”设置?
- sql - 插入并选择查询.... 聚合多行数据
- node.js - 节点 js 无法在 Windows 2008 服务器上运行
- javascript - 固定位置全高div滚动问题
- python - 有没有比 np.diff 更快的替代方案?