我正在使用 Azure Java SDK 學(xué)習(xí)開(kāi)發(fā) Java IoT Edge 模塊。我正在關(guān)注本教程https://docs.microsoft.com/en-us/azure/iot-edge/tutorial-java-module。因此,他們解釋了如何使用回調(diào)發(fā)送消息和接收消息,如下所示:// 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))); }}如您所見(jiàn),發(fā)送和接收的消息都是Message類(lèi)型。例如,我如何發(fā)送整數(shù)?我看到我可以將它轉(zhuǎn)換為字符串String msgString = new String(msg.getBytes(), Message.DEFAULT_IOTHUB_MESSAGE_CHARSET);但是整數(shù)呢?另外,在 sendEventAsync 方法中,第三個(gè)參數(shù) msg 是什么?在文檔中他們說(shuō)它是,Object callbackContext但我不明白它是什么以及為什么我們使用它msg作為這個(gè)參數(shù)。謝謝您的回答
1 回答

有只小跳蛙
TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超8個(gè)贊
將整數(shù)作為二進(jìn)制消息發(fā)送非常簡(jiǎn)單:
Message msg = new Message(ByteBuffer.allocate(4).putInt(1695609641).array());
sendEventAsync 方法中的第三個(gè)參數(shù)是第二個(gè)參數(shù)中回調(diào)方法的上下文對(duì)象,方法簽名如下
void execute(IotHubStatusCode responseStatus, Object callbackContext);
所以在第三個(gè)參數(shù)中傳入消息可以讓你在回調(diào)方法中訪(fǎng)問(wèn)消息
添加回答
舉報(bào)
0/150
提交
取消