[英]Node.js: Send GET request via unix socket
我是node.js的新手。 我正在尝试使用unix socket设置客户端服务器连接,其中我的客户端请求将在node.js中,而后台运行的服务器将在其中。
客户端代码:
var request = require('request');
request('http://unix:/tmp/static0.sock:/volumes/list', function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body)
} else {
console.log("In else part of the receiver" + response.statusCode + body)
}
}
})
当我尝试与写入的服务器进行通信时,它会显示HTTP error: 400 Bad Request: malformed Host header'
同样适用于:
curl -X GET --unix-socket /tmp/static0.sock http://:/volumes/list
不确定我的请求有什么问题。 我们需要发送标题吗? 我期待JSON的回应。
要在不使用请求模块的情况下完成此操作,请尝试以下操作
const http = require('http');
const options = {
socketPath: '/tmp/static0.sock',
path: '/volumes/list',
};
const callback = res => {
console.log(`STATUS: ${res.statusCode}`);
res.setEncoding('utf8');
res.on('data', data => console.log(data));
res.on('error', data => console.error(data));
};
const clientRequest = http.request(options, callback);
clientRequest.end();
请考虑以下示例:
客户端代码:您也可以在某些代码中进行套接字连接:
<script src="https://cdn.socket.io/socket.io-1.4.5.js"></script> <script> socket = io.connect('http://www.example.com' , {'force new connection':true}); socket.on('event', function(){ // code to execute }); </script>
nodejs中的服务器端代码:对于这个安装npm,然后1)npm init 2)npm install --save express 3)npm insatll --save socket
var express = require('express'); var app = express(); var http = require('http'); var server = http.createServer(); var io = require('socket.io').listen(server); var socket = null; io.sockets.on('connection', function(soc) { socket = soc; console.log('socket connected'); }); app.get('/test', function(request, response) { var message = "Hello world"; socket.emit('event', message); response.writeHead(200); reponse.write(message); reponse.end(); }); var server = app.listen(8080, '0.0.0.0');
你可以从浏览器点击这个检查
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.