gpt4 book ai didi

javascript - 如何让 websockets 通过 node.js 中的代理

转载 作者:数据小太阳 更新时间:2023-10-29 05:19:01 26 4
gpt4 key购买 nike

概括 这将是一个问题......如何让 websockets 通过 node.js 中的代理?

在我的特殊情况下 我将 pusher.com 与 node.js client library 一起使用他们推荐。查看代码内部,我想知道一些关于我应该更改什么以使该库与代理一起工作的提示...您可以查看代码 here

也许我应该以某种方式替换或修改 websockets module图书馆正在使用它吗?

编辑

感谢您的回答/评论!需要考虑的几件事(如果我对某些/全部错误,请原谅,只是学习):

  • 我不想创建代理服务器。我只想使用公司内现有的代理服务器来代理我的 websockets 请求(尤其是 pusher.com)
  • 只是想让你知道,如果我使用类似 windows 的代理程序 Proxifier并且我设置了规则来检查所有到端口 443 的连接是否通过代理服务器 proxy-my.coporate.com:1080(类型 SOCKS5)它非常有效。
  • 但我不想走这条路。我想在我的 Node js 代码中以编程方式配置此代理服务器(即使这涉及修改我提到的推送器库)
  • 我知道如何使用 Request module 为 HTTP 执行此操作(查找提到如何使用代理的部分)。
    • 我想为 websockets 做一个类似的事情。

最佳答案

来自 https://www.npmjs.com/package/https-proxy-agent

var url = require('url');
var WebSocket = require('ws');
var HttpsProxyAgent = require('https-proxy-agent');

// HTTP/HTTPS proxy to connect to
var proxy = process.env.http_proxy || 'http://168.63.76.32:3128';
console.log('using proxy server %j', proxy);

// WebSocket endpoint for the proxy to connect to
var endpoint = process.argv[2] || 'ws://echo.websocket.org';
var parsed = url.parse(endpoint);
console.log('attempting to connect to WebSocket %j', endpoint);

// create an instance of the `HttpsProxyAgent` class with the proxy server information
var options = url.parse(proxy);

var agent = new HttpsProxyAgent(options);

// finally, initiate the WebSocket connection
var socket = new WebSocket(endpoint, { agent: 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();
});

关于javascript - 如何让 websockets 通过 node.js 中的代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23686379/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com