为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

繁星coding 2022-07-20 16:00:27
我正在使用 Azure Java SDK 学习开发 Java IoT Edge 模块。我正在关注本教程https://docs.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 是什么?在文档中他们说它是,Object callbackContext但我不明白它是什么以及为什么我们使用它msg作为这个参数。谢谢您的回答
查看完整描述

1 回答

?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

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

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

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

void execute(IotHubStatusCode responseStatus, Object callbackContext);

所以在第三个参数中传入消息可以让你在回调方法中访问消息


查看完整回答
反对 回复 2022-07-20
  • 1 回答
  • 0 关注
  • 125 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信