Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js nodejs tcp代理身份验证_Node.js_Sockets_Tcp_Proxy - Fatal编程技术网

Node.js nodejs tcp代理身份验证

Node.js nodejs tcp代理身份验证,node.js,sockets,tcp,proxy,Node.js,Sockets,Tcp,Proxy,我正在使用一个名为tcp proxy的nodejs模块将请求从客户端传输到代理服务器,以代理请求 我希望此代理仅在用户提供用户名和密码时工作,因此我修改了代码,使客户端在继续之前发送代理身份验证头 以下是我的javascript代码: var tcpProxy=require('tcp-proxy'); var server=tcpProxy.createServer({ 目标:{ 主持人:“主持人” 端口:“端口” } }); 服务器监听(8000); server.on('连接',(套接字)

我正在使用一个名为
tcp proxy
的nodejs模块将请求从客户端传输到代理服务器,以代理请求

我希望此代理仅在用户提供用户名和密码时工作,因此我修改了代码,使客户端在继续之前发送代理身份验证头

以下是我的javascript代码:

var tcpProxy=require('tcp-proxy');
var server=tcpProxy.createServer({
目标:{
主持人:“主持人”
端口:“端口”
}
});
服务器监听(8000);
server.on('连接',(套接字)=>{
socket.on('data',(data)=>{
如果(!授权(数据、套接字)){
socket.write('HTTP/1.1 407需要代理身份验证\n代理身份验证:基本领域=”\n连接:保持活动状态');
socket.write('\n\r\n');
socket.end();
}
});
});
功能授权(数据、套接字){
if(socket.auth){
返回true;
}

对于(var i=0;我是否使用浏览器开发工具逐步检查代码并找出失败的地方?这里没有人能够调试您的代码。@jdv是的,正如我在问题中提到的,我尝试调试它,发现safari没有发送代理授权头,因此我的代理服务器正在断开连接。我是这样做的抱歉,如果我的问题不清楚,我想知道为什么safari和一些应用程序不发送授权头,而chrome和Firefox则发送https请求。Wireshark可能是下一步使用的最佳工具。您是否使用浏览器开发工具逐步检查代码并找出失败的地方?这里没有人处于p定位以调试您的代码。@jdv是的,正如我在问题中提到的,我试图调试它,发现safari没有发送代理授权标头,因此我的代理服务器正在断开连接。如果我在问题中不清楚,我很抱歉,我想知道为什么safari和某些应用程序在chrome和Firefox不支持https请求。Wireshark可能是目前下一步使用的最佳工具。