1

我将 COAP API 开发成 java。它运作良好。示例 URL: coap://localhost:5683/test-url 。此 api 将使用电子设备触发。

我在 nodejs 中开发了另一个项目。但我想通过节点 js 触发 COAP api。

我跟着这个网址。 node-coap 但它不起作用。请任何人建议我。

const coap    = require('../') // or coap
    , server  = coap.createServer()

server.on('request', function(req, res) {
  res.end('Hello ' + req.url.split('/')[1] + '\n')
})

// the default CoAP port is 5683 
server.listen(function() {

  var req = coap.request('coap://localhost:5683/test-url');
  req.on('response', function(res) {
    res.pipe(process.stdout)
    res.on('end', function() {
      process.exit(0)
    })
  })

  req.end()
});

错误详情:

Error: bind EADDRINUSE 0.0.0.0:5683
    at Object.exports._errnoException (util.js:893:11)
    at exports._exceptionWithHostPort (util.js:916:20)
    at dgram.js:221:18
4

2 回答 2

0

以下代码对我有用。

var coap = require('coap');    
var coapConnection = {
    host : url,
    pathname : '/path',
    method : 'POST',
    port : '5683',
    confirmable : true
};

var req = coap.request(coapConnection);
req.write(JSON.stringify(spec.body));
req.on('response', function(response) {
    var d = response.payload;
    spec.resp.response = JSON.parse(d.toString('utf8'));
    response.pipe(process.stdout);
    response.on('end', function() {
        console.log("Success");
    });
});
req.end(); 
于 2017-01-29T14:26:53.430 回答
0

错误消息EADDRINUSE表明端口 (5683) 已在使用中。您可以更改端口或终止在 5683 上运行的进程并尝试重新启动您的应用程序。

您可以更改端口,如下所示:

var PORT = 3000;
server.listen(PORT, function() {

  var req = coap.request('coap://localhost:5683/test-url');
  req.on('response', function(res) {
    res.pipe(process.stdout)
    res.on('end', function() {
      process.exit(0)
    })
  })

  req.end()
});
于 2016-08-31T06:46:15.570 回答