我正在尝试在 PowerShell 中创建一个简单的 MQTT 客户端来接收来自代理的一些消息。该代理正在使用非标准端口。
为此,我按照在 https://jackgruber.github.io/2019-06-05-ps-mqtt/
找到的说明进行操作当使用示例的代码时,它工作正常,但是当我尝试指定类似的端口时
$MqttClient = [uPLibrary.Networking.M2Mqtt.MqttClient]("mqtt-broker.net",41383)
它抛出错误:
Cannot convert the "System.Object[]" value of type "System.Object[]" to type "uPLibrary.Networking.M2Mqtt.MqttClient".
At line:1 char:1
+ $MqttClient = [uPLibrary.Networking.M2Mqtt.MqttClient]("ext.mqtt.drya ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [], RuntimeException
+ FullyQualifiedErrorId : ConvertToFinalInvalidCastException
有什么想法吗?
我怀疑你需要构造该对象,而不仅仅是转换它。
尝试:
[upLibrary.Networking.m2mqtt.mqttclient]::new("mqtt-broker.net",41383)
我设法通过这样做指定端口:
enum MqttSslProtocols
{ None
SSLv3
TLSv1_0
TLSv1_1
TLSv1_2
}
$sslProtocol = [MqttSslProtocols]::TLSv1_2
$MqttClient = [uPLibrary.Networking.M2Mqtt.MqttClient]::new("my-url",8883,$true,$null,$null,$sslProtocol)
您需要匹配构造函数签名之一的参数。