【问题标题】:CoAP blockwise transfer on NodeJSNodeJS 上的 CoAP 块式传输
【发布时间】:2018-02-02 12:38:51
【问题描述】:

如何在 NodeJS 上创建 CoAP 块级传输?我使用 node-coap 模块。 我发送请求到:

var options = {
      host: 'coap.me',
      port: 5683,
      pathname: '/test',
      method: 'PUT',
    };

我也这样做:req.setOption('Block2', new Buffer([1])); 这个方法应该创建一个 CoAP 选项,意味着有效负载的大小是 32 字节。之后我不知道该怎么办。我尝试for 循环(body = 32 字节):

for(var i = 0; i < 100; i++){
        if(i === 99){
            req.end(body);
        } else {
            req.write(body);
        }
    }

我所拥有的一切都是错误:Max packet size is 1280: current is 265951

或者如果我应该使用不同的请求,如何一个接一个地映射?因为每个请求都会产生响应,而我的程序在第一次请求后结束。

【问题讨论】:

    标签: node.js coap


    【解决方案1】:

    我猜你想从客户端向服务器发送一个大的有效载荷? 这是 Block1 而不是 Block2

    RFC7959:

    Block1 和 Block2 选项都可以出现在请求和 响应消息。在任何一种情况下,Block1 选项都适用于 请求有效负载,并且 Block2 选项与响应有关 有效载荷。

    不幸的是,node-coap 中似乎没有这样的开箱即用功能。

    https://github.com/mcollina/node-coap/issues/42

    【讨论】:

    • 感谢您的回答。是的,我注意到缺少此功能并编写了用于实现 Block1 的函数
    猜你喜欢
    • 1970-01-01
    • 2021-08-20
    • 2011-03-21
    • 2018-01-14
    • 1970-01-01
    • 2013-10-24
    • 1970-01-01
    • 2012-06-30
    • 2012-04-29
    相关资源
    最近更新 更多