Unix Domain Sockets вместо хоста / порта для TCP-сервера - PullRequest
0 голосов
/ 03 июня 2018

Это для всех версий Node.js 6 +

Скажем, у меня в настоящее время есть TCP-сервер с несколькими клиентами:

const server = net.createServer(s => {

});

server.listen(6000);

, и я подключаюсь к нему с клиентами:

const s1  = net.createConnection({port:6000});
const s2  = net.createConnection({port:6000});
const s3  = net.createConnection({port:6000});

TCP иногда может быть немного медленным на локальной машине.Я слышал, что может быть способ заменить комбинацию хост / порт на Unix Domain Sockets, но сохранить интерфейс в стиле TCP-сервера.Возможно ли это и как?

В документах Node.js упоминается, что вы можете создать сервер, который прослушивает путь: https://nodejs.org/api/net.html#net_server_listen_path_backlog_callback

, но не указывает, какой тип файла необходимбыть и как создать этот файл.

1 Ответ

0 голосов
/ 15 июня 2018

Оказывается, на MacOS / Linux это легко.Вам не нужно создавать файл.Вам нужно убедиться, что файл не существует, а затем указать основным библиотекам Node.js пустой путь.

Для сервера:

const udsPath = path.resolve('some-path.sock');

const wss = net.createServer(s => {

});

wss.listen(udsPath, () => {


});

Для клиентов:

const udsPath = path.resolve('some-path.sock'); // same file path as above

const ws = net.createConnection(udsPath, () => {
});
...