Как добавить дополнительные опции в запрос CoAP?

Я знаю, что CoAP определяет некоторые параметры, которые могут быть включены в запрос на отправку, и у каждой опции есть свой номер. Структура запроса CoAP uri выглядит так:

coap-URI = "coap:" "//" host [":" port] path-abempty ["?" запрос]

где внутри они включают некоторые параметры, такие как: Uri-Host, Uri-Port, Uri-Path и Uri-Query, и у каждого из них есть свой номер, например: 3 для Uri-Host, 11 для Uri Path .... . И я хотел бы добавить еще несколько дополнительных опций к этому запросу CoAP, например, некоторые опции номер 256, 257 ... Как я могу это сделать?

Заранее благодарю

Сын


person Ock    schedule 17.08.2016    source источник
comment
вы выяснили ответ на вопрос выше? если да, поделитесь ответом   -  person Ashok    schedule 09.01.2017
comment
попробовал этот request.getOptions (). addOption (new Option (256, admin: admin)); Но получатель этого не видит   -  person Ashok    schedule 09.01.2017


Ответы (1)


Мне удалось пройти Вариант номер 256.

CoapClient client = new CoapClient(...);
Request request = new Request(CoAP.Code.GET, CoAP.Type.NON);
OptionSet optionSet = new OptionSet();
optionSet.addOption(new Option(256, "admin:admin"));
request.setOptions(optionSet);
client.advanced(request); // or async version
client.shutdown();

На ресурсе:

@Override
public void handleGET(CoapExchange exchange) {
    OptionSet optionSet = exchange.advanced().getRequest().getOptions();
    List<Option> options = optionSet.asSortedList();
    options.stream()
            .filter(o -> o.getNumber() == 256)
            .findFirst()
            .ifPresent(o -> System.err.println(o.getNumber() + " " + o.getStringValue()));
}

Выход:

256 admin:admin

Однако вариант номер 256 может быть неправильным выбором в целом:

RFC 7252 Протокол ограниченного приложения (CoAP). 12.2. Реестр номеров вариантов CoAP

Политика IANA в отношении будущих дополнений к этому субреестру разделена на три уровня следующим образом. Диапазон 0..255 зарезервирован для опций, определенных IETF (IETF Review или IESG Approval). Диапазон 256..2047 зарезервирован для часто используемых опций с общедоступными спецификациями (требуется спецификация). Диапазон 2048..64999 предназначен для всех других опций, включая частные или зависящие от поставщика, которые проходят проверку назначенным экспертом, чтобы гарантировать правильность определения семантики опций. Номера опций от 65000 до 65535 включительно зарезервированы для экспериментов. Они не предназначены для использования каким-либо конкретным поставщиком и НЕ ДОЛЖНЫ использоваться при оперативном развертывании.

person eugene-nikolaev    schedule 24.02.2017