【发布时间】:2020-11-22 19:15:09
【问题描述】:
出于我的迷你项目的目的,我需要在我的客户端和某个服务器之间建立一个代理服务器。此代码有效,但它不起作用。它开始连接,通过登录并停止加密,然后过了一会儿它超时,我不知道为什么。我一直在重读 minecraft 协议 (https://wiki.vg/Protocol#Handshake) 和握手,但我仍然无法弄清楚为什么它不起作用。 console.log() 用于调试,我从中推断出无论出于何种原因,服务器都不会发送设置的压缩/登录成功数据包。
var net = require('net');
var mcip = "mc.hypixel.net";
var mcport = 25565;
var server = net.createServer((socket) =>{
var remoteAddress = socket.remoteAddress + ':' + socket.remotePort;
console.log('new client connection from %s' + remoteAddress);
socket.on('data', (d)=>{
var client = net.connect(mcport,mcip, ()=>{
console.log("connected to server");
client.on("data", (data)=>{
socket.write(data);
console.log(data);
console.log("S -> C");
client.end();
});
client.write(d);
console.log(d);
console.log("C -> S");
});
});
});
server.listen(25565);
【问题讨论】: