Можно ли создать несколько подключений WebSocket к серверу, используя разные прокси-серверы Socks5 в Node.js?
Я пытаюсь программно создать несколько подключений к моему серверу через веб-сокет, где каждый веб-сокет использует свой прокси-сервер Socks5. Я не нашел способа создать соединение через веб-сокет. Я видел, что серверы веб-сокетов через прокси существуют, но не наоборот.
Я искал несколько дней, но безрезультатно; Я не нашел источников о том, как это делать.
1 ответ
Я нашел решение. Изначально я пытался использовать прокси-серверы HTTP/HTTPS, но каждый раз терпел неудачу, однако я попробовал прокси-серверы SOCK5, и... они работали безупречно. Вот модифицированный код, взятый со страницы Socks-Proxy-Agent на GitHub, здесь используется бесплатный прокси из списка прокси. https://github.com/TooTallNate/proxy-agents/tree/main/packages/socks-proxy-agent
let WebSocket = require('ws').WebSocket;
let SocksProxyAgent = require("socks-proxy-agent").SocksProxyAgent;
const agent = new SocksProxyAgent(
'socks5://192.252.216.81:4145'
);
var socket = new WebSocket('ws://echo.websocket.events', { agent });
socket.on('open', function () {
console.log('"open" event!');
socket.send('hello world');
});
socket.on('message', function (data, flags) {
console.log('"message" event! %j %j', data, flags);
socket.close();
});
Результат:
"open" event!
"message" event! {"type":"Buffer","data":[101,99,104,111,46,119,101,98,115,111,99,107,101,116,46,101,118,101,110,116,115,32,115,112,111,110,115,111,114,101,100,32,98,121,32,76,111,98,46,99,111,109]} false
"message" event! {"type":"Buffer","data":[104,101,108,108,111,32,119,111,114,108,100]} false