我有以下问题: 我可以使用Java而不是go来发布到mqtt代理。
Java代码:
public static void main(String[] args) {
[...]
MqttMessage message = new MqttMessage(jsonString.getBytes());
message.setQos(qos);
sampleClient.publish(topic, message);
}
GO中的代码
func main() {
// Start the connection
c := MQTT.NewClient(opts)
if token := c.Connect(); token.Wait() && token.Error() != nil {
panic(token.Error())
}
payload:= "test"
if token := c.Publish("topic", 2, true, payload); token.Wait() && token.Error() != nil {
fmt.Println(token.Error())
}
}
更新:它必须是有效负载。在Java中,我有这个:
String jsonString= "{\"stream\":\"temperatura2\",\r\n" +
"\"sensor\":\"ec6c613a-66b4-4584-fb37-5f7cac130f7d\",\r\n" +
"\"values\":[{\"time\":\"2019-03-10T11:30:00Z\",\"components\":{\"alfanum\":\"99.0\"}}]}\r\n";
我不确定如何在go中定义正确的有效载荷:
payload := []byte(`{\"stream\":\"temperatura2\",\r\n" +
"\"sensor\":\"ec6c613a-66b4-4584-fb37-5f7cac130f7d\",\r\n" +
"\"values\":[{\"time\":\"2019-11-28:30:00Z\",\"components\":{\"alfanum\":\"1.0\"}}]}`)