簡體   English   中英

LXD-如何通過Node.js下的Unix套接字域連接到LXD API?

[英]LXD - How can connect to the LXD API via unix socket domain under nodejs?

如何通過Node.js下的UNIX套接字域連接到LXD API? 我嘗試以下代碼,但失敗。 我得到了這個答案: HTTP / 1.1 400 Bad Request

var net = require('net');

var lxdUSD='/var/lib/lxd/unix.socket';



var net = require('net');
var client = net.connect({path: lxdUSD},
            function() { //'connect' listener
                console.log('connected to socket!: '+lxdUSD);

});

client.on('data', function(data) {
    console.log(data);
    console.log(data.toString());
    client.end();
});

client.on('end', function() {
    console.log('disconnected from socket!: '+lxdUSD);
});

client.on('error', function() {
    console.log('Error');
    process.exit(-1);
});
setInterval(function(){
            var msg="GET /1.0/containers HTTP/1.1\r\n";
            console.log("write to socket: "+msg);
            client.write(msg);
            console.log("........");

}, 15*1000);

在命令行中嘗試以下操作:

echo -e "GET /1.0/containers HTTP/1.1\r\n" | socat unix-connect:/var/lib/lxd/unix.socket STDIO

輸出:

HTTP/1.1 200 OK
Content-Type: application/json
Date: Thu, 15 Oct 2015 15:02:59 GMT
Content-Length: 135

{"type":"sync","status":"Success","status_code":200,"metadata":["/1.0/containers/pc01","/1.0/containers/pc02","/1.0/containers/pc03"]}

固定:

代替

var msg="GET /1.0/containers HTTP/1.1\r\n";

一定是:

var msg="GET /1.0/containers HTTP/1.1\r\n\r\n";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM