Ich muss Websocket auf Anwendungsebene ausgleichen. Lassen Sie uns die Websocket-Anfrage auf der Grundlage der erhaltenen Nachricht weiterleiten, sie auf dem Proxy decodieren und dann diese Daten an einen anderen Socket-Server senden, indem Sie eine Logik verwenden.Knoten Http Proxy Web Socket Balance
Aber ich bin nicht in der Lage, dies zu tun. Dies ist der ursprüngliche Code, den ich geschrieben habe und versuche, das zu tun. Dies ist der Server
var http = require('http');
var httpProxy = require('http-proxy');
var WebSocket = require('ws');
var WebSocketServer = require('ws').Server;
var wss = new WebSocketServer({ port: 8080 });
wss.on('connection', function connection(ws) {
ws.on('message', function incoming(message) {
console.log('received: %s', message);
});
ws.send('something');
});
var proxy = httpProxy.createServer({target: 'ws://localhost:8080', ws:true});
var server = httpProxy.createServer(function(req, res) {
//SOME LOGIC HERE TO PARSE WS DATA AND SEND TO WS SERVER
proxy.ws(req, res, { target: 'ws://localhost:8080'});
}).listen(8014);
CLIENT
var http = require('http');
var httpProxy = require('http-proxy');
var WebSocket = require('ws');
var ws = new WebSocket('ws://localhost:8014/');
ws.on('open', function() {
ws.send("CLIENT");
});
ws.on('message', function (msg) {
console.log(msg);
});
möglich [duplizieren] (http://stackoverflow.com/questions/21629752/using-node-http-proxy-to-proxy-websocket-connections)? Könnte dir helfen –
@NiCkNewman Ich kann Proxy-fein, aber ich muss auf der Grundlage der empfangenen Daten ausgleichen, ohne tatsächlich die Socket-Verbindung zu brechen. –