使用节点js的COAP API触发器

时间:2016-08-31 05:58:21

标签: javascript node.js api http coap

我将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

2 个答案:

答案 0 :(得分: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()
});

答案 1 :(得分: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();