繁体   English   中英

如何为CoAP请求添加其他选项?

[英]How to add extra options to CoAP request?

我知道CoAP定义了一些可以包含在发送请求中的选项,每个选项都有自己的编号。 CoAP uri请求的结构如下:

coap-URI =“ coap:”“ //”主机[“:”端口]路径豁免[“?” 查询

在其中包含一些选项,例如:Uri-Host,Uri-Port,Uri-Path和Uri-Query,它们每个都有自己的编号,例如:Uri-Host为3,Uri Path为11。 。 我想为此CoAP请求添加更多其他选项,例如一些选项编号256、257 ...我该怎么做?

谢谢高级

儿子

我设法通过了选件编号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审查或IESG批准)定义的选项。 256..2047的范围保留用于具有公共规范(需要规范)的常用选项。 2048..64999的范围适用于所有其他选项,包括专用选项或特定于供应商的选项,这些选项均经过指定专家审核,以帮助确保正确定义选项语义。 保留65000到65535之间的选件号供实验使用。 它们不适合用于任何特定于供应商的用途,并且绝不能在运营部署中使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM