nodejs повторно использует последнее соединение TLS того же сервера - PullRequest
0 голосов
/ 11 сентября 2018

Мой демон узла подключается к одному и тому же серверу TLS несколько раз.Я хочу сохранить время соединения TLS.

// repeat every 5 seconds
setInterval(() => {
    const socket = tls.connect(443, 'test.com')
    socket.on('connect', () => {
        socket.write(someUniqueData)
    })
}, 5000)

Возможно ли повторно использовать последнее соединение TLS?

1 Ответ

0 голосов
/ 11 сентября 2018

Вы можете легко сохранить сокет, вот пример:

const tls = require('tls');
const someUniqueData = 'someUniqueData';

var savedSocket = null;

function getSocket() {
    return new Promise((resolve, reject) => {

        if (savedSocket) {
            console.log('getSocket: Reusing saved socket..');
            resolve(savedSocket);
            return;
        }

        console.log('getSocket: Creating new socket..');
        const socket = tls.connect(443, 'test.com');
        socket.on('connect', () => {
            console.log('Connected to host..');
            savedSocket = socket;
            resolve(savedSocket);
        });
        socket.on('error', (err) => {
            console.log('Error connecting to host..');
            reject(err);
        });     
    });
}

async function connectAndSend() {
    try {
        let socket = await getSocket();
        console.log('connectAndSend: Sending data..');
        socket.write(someUniqueData)
    } catch (err) {
        console.error('connectAndSend: Error occurred: ', err);
    }
}

// repeat every 5 seconds
setInterval(() => {
    connectAndSend();
}, 5000)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...