1

我将数据发送到 IoT 中心并接收它,它可以工作,但我不知道如何使用接收到的数据:这是我接收数据的代码:

public void accept(PartitionReceiver receiver)
            {
                System.out.println("** Created receiver on partition " + partitionId);
                try {
                    while (true) {
                        Iterable<EventData> receivedEvents = receiver.receive(10).get();
                        int batchSize = 0;
                        if (receivedEvents != null)
                        {
                            for(EventData receivedEvent: receivedEvents)
                            {                                    
                                System.out.println(String.format("| Time: %s", receivedEvent.getSystemProperties().getEnqueuedTime()));
                                System.out.println(String.format("| Device ID: %s", receivedEvent.getProperties().get("iothub-connection-device-id")));
                                System.out.println(String.format("| Message Payload: %s", new String(receivedEvent.getBody(), Charset.defaultCharset())));
                                batchSize++;
                            }
                        }
                    }
                }
                catch (Exception e)
                {
                    System.out.println("Failed to receive messages: " + e.getMessage());
                }
            }

我想处理接收到的数据,在这里我将数据变成 JSON 字符串:

System.out.println(String.format("| Message Payload: %s", new String(receivedEvent.getBody(), Charset.defaultCharset())));

数据输出为:产品:xy,价格:2.3。我想把数据带到:

String product= product;
double price= price;

如何将收到的有效载荷保存在变量中?

谢谢

4

1 回答 1

2

有两种消息,包括device-to-cloudcloud-to-device

对于第一种device-to-cloud消息,正如@DominicBetts 所说,您可以参考该部分Receive device-to-cloud messages以了解如何使用与事件中心兼容的端点接收 d2c 消息。GitHub上有两个示例作为参考,请参见下文。

  1. 简单发送/接收示例:展示如何连接,然后向 IoT 中心发送和接收消息,将您选择的协议作为参数传递。
  2. 接收到的简单示例处理消息::展示如何连接到 IoT 中心并管理从 IoT 中心接收到的消息,将您选择的协议作为参数传递。

第二种,cloud-to-devicemessages,你可以参考Receiving messages on the simulated device了解如何接收 c2d 消息的部分。文章中的示例代码是为 C# 编写的,但我认为使用 Java 代替 C# 很简单,请注意选择合适协议部分的注意事项。

于 2016-06-22T00:50:22.340 回答