node koa 怎么监听 connet 请求,实现代理?

实现一个代理抓包,但一直没办法在 koa 对象里监听 connect 请求

阅读 2.1k
1 个回答

如果是要在一个 koa app 里面,拦截请求,转发到另一个服务,可以这样

const http = require('http');
const Koa = require('koa');
const net = require('net');

const app = new Koa();
app.use((ctx, next) => {
  ctx.body = 'from koa app';
});
const koaServer = http.createServer(app.callback()).listen(3000);
// const koaServer = app.listen(3000);

// proxy server
http.createServer((req, res) => {
  console.log(req.method);
  console.log(req.url);
}).listen(3001);

koaServer.on('connection', socket => {
  const proxy_socket = net.createConnection(3001)
  socket.on('data', chunk => {
    proxy_socket.write(chunk);
  });
  socket.on('end', () => {
    proxy_socket.end();
  })
});

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题