Websocket de proxy reverso do NodeJS

Se precisar reimprimir, indique a fonte: http://blog.csdn.net/itas109
Grupo de intercâmbio técnico QQ: 129518033

Diretório do artigo
NodeJS proxy reverso websocket
@ [toc] Questões relacionadas ao código do
prefácio : 1. http e websocket diferentes portas expõem uma porta para o exterior



Artigos relacionados:
NodeJS combinado com express using websocket

Prefácio
Embora o Nginx possa executar proxy reverso, ele não se ajusta ao código do desenvolvedor, especialmente quando o front end acessa a porta, pode haver um problema de o Nginx definir um proxy reverso e não corresponder ao programa (como o front-end). O código não usa a porta URL para acesso). E várias portas trarão custos de manutenção ao Nginx. No artigo do NodeJS e express usando websocket, você pode combinar portas http e ws, mas às vezes é necessário usar duas portas, http e ws, respectivamente. Este artigo apresentará como reverter o proxy no nível do código nodejs

代码
const expressar = exigem ( 'expressar');
const proxy = require ('http-proxy-middleware');
const app = express ();

// var express = require ('express');
// var http = require ('http');
deixe https = require ("https");
var expressWs = require ('express-ws');
var fs = requerer ('fs');

var option = {
key: fs.readFileSync ('./ keys / private.key'),
ca: fs.readFileSync ('./ keys / csr.pem'),
cert: fs.readFileSync ('./ keys / file .crt ')
}

app.get ('/', função (res, req) {
req.send ('123')
})

var wsProxy = proxy ({
target: 'https: // localhost: 8080', // target host
changeOrigin: true, // requer site host virtual
ws: true, // se o proxy websocket
}); // ativar a função de proxy, E carregue a configuração

// Proxy reverso (aqui você pode configurar o caminho a ser revertido aqui)
// por exemplo: proxy / api / test para $ {HOST} / api / test
app.use ('/ test', wsProxy) ;

serverProxy = https.createServer (opção, aplicativo);
// porta de atendimento

serverProxy.listen (8888, () => {
console.log (`servidor executando`);
});

serverProxy.on ('upgrade', wsProxy.upgrade); // - assine o http 'upgrade'

var app2 = express ();

var httpServer;
// httpServer = http.createServer (app2);
httpServer = https.createServer (opção, app2);

expressWs (app2, httpServer);

app2.ws ('/ test', função (ws, req) {
console.log ("ok")
ws.send ('Você se conectou com êxito')
ws.on ('message', function (msg) {
// Código comercial
console.log (msg);
ws.send (msg)
})
})

app2.get ('/', função (res, req) {
req.send ('123')
})

App.listen // (8080);
// httpServer.listen (8080);
httpServer.listen
(8080); ----------------
Aviso: Este artigo é bloggers CSDN " O artigo original de "itas109" segue o contrato de direitos autorais CC 4.0 BY-SA. Para reimpressão, anexe o link da fonte original e esta declaração.
Link original: https://blog.csdn.net/itas109/java/article/details/104034178

Acho que você gosta

Origin www.cnblogs.com/xiami2046/p/12677075.html
Recomendado
Clasificación