Служба TCP, записанная Nodejs, может прослушать в файле носков (доменное сокет), а его служба HTTP может сделать то же самое. Хотя не имеет большого смысла подключаться к файлу носка в качестве услуги HTTP, здесь это просто чистая попытка.
Так написана служба TCP
Кода -копия выглядит следующим образом:
var net = require ('net');
net.createserver (function (ocket) {
socket.on ('data', function (data) {
socket.write ('получен:' + data);
});
}). Слушайте ('/tmp/node_tcp.sock');
Подключите вышеупомянутое '/tmp/node_tcp.sock'
Кода -копия выглядит следующим образом:
telnet /tmp/node_tcp.sock
Попытка /tmp/node_tcp.sock ...
Подключено к (null).
Экономный персонаж - «^]».
Привет, мир!
Получено: Привет, мир!
Чтобы быть точным, в этой статье должны быть TCP Nodejs TCP и HTTP прослушивания файлов доменных сокетов.
Это все еще очень распространено для TCP, прослушивающих доменные розетки. Например, иногда будет осуществляться доступ к нативной базе данных или кэше, например, использование '/tmp/mysql.sock' для доступа к местной службе MySQL, чтобы не было необходимости запускать порт TCP, чтобы подвергнуться воздействию, а безопасность улучшается и производительность также улучшается.
Теперь давайте посмотрим на HTTP -прослушивание Nodejs HTTP на доменном розетке и преобразуем его из классических примеров.
Кода -копия выглядит следующим образом:
var http = require ('http');
http.createserver (function (req, res) {
res.writehead (200, {'' content-type ':' text/plain '});
res.end ('Hello World/N');
}). Слушай ('/tmp/node_http.sock');
console.log ('сервер, работающий по адресу /tmp/node_http.sock');
Я не знаю, как получить доступ к вышеуказанной HTTP -службе в браузере, поэтому я использую Telnet для его проверки
Кода -копия выглядит следующим образом:
telnet /tmp/node_http.sock
Попытка /tmp/node_http.sock ...
Подключено к (null).
Экономный персонаж - «^]».
Получить / http / 1.1
Http/1.1 200 OK
Тип контента: текст/равнина
Дата: понедельник, 26 января 2015 г. 04:21:09
Соединение: Keep-Alive
Кодирование передачи: кусочке
в
Привет, мир
0
Может правильно обрабатывать http -запросы на '/tmp/node_http.sock'.
Используйте Nodejs http client для доступа к
Кода -копия выглядит следующим образом:
var http = require ('http');
var options = {
SocketPath: '/tmp/node_http.sock',
Метод: 'Get',
путь: '/'
};
var req = http.request (options, function (res) {
console.log ('status:' + res.statuscode);
console.log ('заголовки:' + json.stringify (res.headers));
res.on ('data', function (chunk) {
console.log (chunk.tostring ());
});
});
req.end ();
Выполните приведенный выше код, если имя файла - http_client.js,
Кода -копия выглядит следующим образом:
Узел http_client.js
Статус: 200
Заголовки: {"Контент-тип": "text/plain", "date": "mon, 26 января 2015 04:25:49 Gmt", "Connection": "Close", "Transfer-Coding": "Chunked"}
Привет, мир
Эта статья предназначена только для записи, и я не могу представить фактическую цель, позволяющая HTTP -сервисам слушать в доменном розетке, и браузер не может получить к нему доступ.