Как узнать, работает ли поставляемый прокси-сервер socks с этим запросом веб-сокета? - PullRequest
0 голосов
/ 05 октября 2018

Я пытаюсь подключиться к конечной точке websocket через node.js с помощью модуля ws.Я использую библиотеку socks-proxy-agent для создания агента и предоставления его во время подключения.Я тестирую несколько БЕСПЛАТНЫХ IP-адресов прокси-носков с ЭТОГО сайта.Проблема в том, что приведенный ниже код всегда подключается независимо от того, правильна ли комбинация хоста и порта или нет.Как я узнаю, что прокси-сервер используется веб-сокетом и работает в резервном режиме, если я предоставляю неправильный прокси-сервер.Помощь приветствуется

'use strict';

const 
  WebSocket = require('ws'),
  SocksProxyAgent = require('socks-proxy-agent')

let agent = new SocksProxyAgent({
  protocol: 'socks4:',
  host: '182.23.40.194',
  port: 60456
})

let options = {
  perMessageDeflate: false,
  handshakeTimeout: 10000,
  headers: {
    'User-Agent': 'Test 0.0.1'
  },
  agent: agent
}

let w = new WebSocket('wss://echo.websocket.org', options)

w.on('open', () => {
  console.log('connection was opened')
})

w.on('close', (code, reason) => {
  console.log('connection was closed', code, reason)
})

w.on('error', err => {
  console.log('we got an error', err)
})

w.on('unexpected-response', (request, response) => {
  console.log('we got a response', response.statusCode, response.statusMessage)
})

w.on('message', data => {
  console.log('we got some data', data)
})

w.on('ping', data => {
  console.log('the server pinged us')
  w.pong('', true, true)
})

w.on('pong', data => {
  console.log('we are alive')
})

w.on('upgrade', res => {
  console.log('connnection was upgraded', res.headers)
})
...