Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Nodejs CoAP服务器未接收有效负载_Javascript_Arduino_Payload_Coap - Fatal编程技术网

Javascript Nodejs CoAP服务器未接收有效负载

Javascript Nodejs CoAP服务器未接收有效负载,javascript,arduino,payload,coap,Javascript,Arduino,Payload,Coap,我刚刚使用Arduino创建了CoAP客户端,并且能够将有效负载(“hello”)发送到CoAP浏览器(从mozilla浏览器安装)。我可以在浏览器中看到它,它接收 现在我需要创建自己的| Nodejs服务器来从Arduino客户端接收有效负载(说“你好”)。我怎样才能做到呢 服务器 var coap = require('coap'); var server = coap.createServer(); // At this point, I checked

我刚刚使用Arduino创建了CoAP客户端,并且能够将有效负载(“hello”)发送到CoAP浏览器(从mozilla浏览器安装)。我可以在浏览器中看到它,它接收

现在我需要创建自己的| Nodejs服务器来从Arduino客户端接收有效负载(说“你好”)。我怎样才能做到呢

服务器

var coap        = require('coap');
    var server      = coap.createServer();

// At this point, I checked from mozilla coap browser, sent "hello" and I am able to receive the HEX values. Same way, I tried to send it from Arduino, but did not print anything
    server.on('request', function(req, res) {
       console.log(req.payload);
    })

    // the default CoAP port is 5683
    server.listen(function() {
        var req = coap.request('coap://localhost');
        console.log('Listening on : 5683')

        req.on('response', function(res) {
            res.pipe(process.stdout);
        });

        req.end()
    });
arduino

void loop() {
  // send GET or PUT coap request to CoAP server.
  // To test, use libcoap, microcoap server...etc
   int msgid = coap.put(IPAddress(192,168,0,11), 5683, "light","1");
  Serial.println("Send Request");
  //int msgid1 = coap.get(IPAddress(192, 168, 0, 11), 5683, "time");

  delay(1000);
  coap.loop();
}

在Arduino上,应该在固件(而不是节点)中实现coap服务器

你在用图书馆吗?如果是这样的话,那么您应该特别检查从以太网外围设备读取数据包,解析数据包,然后做出相应的响应

伪代码:

udp.setup()

while true
  p = udp.read()
  if(p == SUCCESSFUL_UDP_READ_FLAG)
    parsed = p.parse()
    if(parsed matches some condition)
      udp.respond(message regarding condition)

另一个示例服务器有两个端点

重要的部分是:

内部
void setup()

然后在
void loop()中执行以下操作:


在Arduino上,应该在固件(而不是节点)中实现coap服务器

你在用图书馆吗?如果是这样的话,那么您应该特别检查从以太网外围设备读取数据包,解析数据包,然后做出相应的响应

伪代码:

udp.setup()

while true
  p = udp.read()
  if(p == SUCCESSFUL_UDP_READ_FLAG)
    parsed = p.parse()
    if(parsed matches some condition)
      udp.respond(message regarding condition)

另一个示例服务器有两个端点

重要的部分是:

内部
void setup()

然后在
void loop()中执行以下操作:

coap.handler();