haoziの窝

使用socks代理连接websocket

2019-12-25

使用socks代理连接websocket#

最近需要收集一些使用 websocket 传输的数据, 为了防止同 IP 并发量过大, 被封号, 需要使用 代理来访问消息服务器

哈欠

准备#

这里用到了

websockets- ws 这个库支持设置网络代理
node-socks-proxy-agent socks 一个 基于Socks(v4/v5) 实现的 `http.Agent`

代理连接 Websocket#

初始化 Agent

import * as SocksProxyAgent from 'socks-proxy-agent'

const proxyAgent = new SocksProxyAgent(`socks://127.0.0.1:1080`);

连接 WebSocket 服务器

import * as ws from 'ws'

const io = new ws(`wss://x.x.x.x`, {
  agent: proxyAgentproxyAgent
})

代理请求 Axios#

import axios from 'axios'

await axios.get(`url`, {
     httpsAgent: proxyAgent,
    // 或
     httpAgent: proxyAgent
})

但是参考 axios - Issuse 636 说到需要同时 httpsAgent, 和 httpAgent

Tags:
笔记

除另有声明外,本博客文章均采用 知识共享(Creative Commons) 署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议 进行许可。