В многопоточном скрипте node js в потоках не изолирован друг от друга. Мой скрипт подключается к чату в нескольких потоках одновременно и что-то идет не так, я отслеживаю это по участникам чата. Все подключаются и спустя время отключаются все кроме последнего подключившегося. Я проверил свое предположение в нескольких отдельно запущенных скриптах(не потоках) и это работает, все подключены и никто не отключился. Я все еще думаю над решением этой проблемы, т.к мне нужно использовать от 20 потоков, а вариант с запуском отдельных процессов не экономичен.
Мой код подключения в вебсокету, если это интересно(саму проблему он не покажет, если использовать, он только для ознакомления):
var WebSocket = require('ws');
var SocksProxyAgent = require('https-proxy-agent');
var endpoint = 'wss://echo.websocket.org';
var options = {
host: '136.244.107.125', //proxy
port: '8080', // port proxy
protocol: 'http',
headers: {
'Connection': 'Upgrade',
'Upgrade': 'websocket',
'Sec-WebSocket-Version': '13',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36',
'Sec-WebSocket-Extensions': 'permessage-deflate; client_max_window_bits',
}
}
var agent = new SocksProxyAgent(options);
var socket = new WebSocket(endpoint, { agent: agent });
socket.on('open', function () {
console.log('open event!');
});
socket.on('message', function (data, flags) {
console.log(data);
socket.close();
});