我将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
答案 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();