gpt4 book ai didi

java - 如何使用 Azure Java SDK 发送和接收消息

转载 作者:行者123 更新时间:2023-12-02 01:37:38 25 4
gpt4 key购买 nike

我正在使用 Azure Java SDK 来学习开发 Java IoT Edge 模块。我正在关注本教程 https://learn.microsoft.com/en-us/azure/iot-edge/tutorial-java-module .

因此他们解释了如何使用回调发送消息和接收消息,如下所示:

// Send message:
client.sendEventAsync(msg, eventCallback, msg, App.OUTPUT_NAME);

// Receive message:
private static MessageCallbackMqtt msgCallback = new MessageCallbackMqtt();

client.setMessageCallback(App.INPUT_NAME, msgCallback, client);

protected static class MessageCallbackMqtt implements MessageCallback {
private int counter = 0;

@Override
public IotHubMessageResult execute(Message msg, Object context) {
System.out.println(String.format("Received message %d: %s", this.counter, new String(msg.getBytes(), Message.DEFAULT_IOTHUB_MESSAGE_CHARSET)));
}
}

如您所见,发送和接收的消息类型为 Message .

例如,我如何发送整数?我发现我可以使用

将其转换为字符串
String msgString = new String(msg.getBytes(), Message.DEFAULT_IOTHUB_MESSAGE_CHARSET);

但是整数呢?

另外,sendEventAsync 方法中的第三个参数 msg 是什么?在 documentation他们说它是 Object callbackContext 但我不明白它是什么以及为什么我们使用 msg 作为此参数。

谢谢您的回答

最佳答案

将整数作为二进制消息发送非常简单:

Message msg = new Message(ByteBuffer.allocate(4).putInt(1695609641).array());

sendEventAsync 方法中的第三个参数是第二个参数中的回调方法的上下文对象,具有以下方法签名

void execute(IotHubStatusCode responseStatus, Object callbackContext);

因此在第三个参数中传入消息可以让您在回调方法中访问该消息

关于java - 如何使用 Azure Java SDK 发送和接收消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54984472/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com