nodejs实现支持流式请求中途取消的反向http代理服务器代码

代码语言:nodejs

所属分类:其他

代码描述:nodejs实现支持流式请求中途取消的反向http代理服务器代码,当客户端在流式输出等待服务端响应中的时候,客户端取消了请求,那么代理端也会向服务器发送终止请求。

代码标签: nodejs 流式 请求 中途 取消 反向 http 代理 服务器 代码

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

const httpProxy = require('http-proxy');
const http = require('http');

const proxy = httpProxy.createProxyServer({});

// 创建一个 Map 来存储正在进行的请求
const activeRequests = new Map();

http.createServer((req, res) => {
  const target = 'http://your-backend-server.com';

  // 监听客户端取消请求的事件
  req.on('aborted', () => {
    const proxyReq = activeRequests.get(req);
    if (proxyReq) {
      // 取消后端请求
      proxyReq.abort();
      activeRequests.delete(req);
      console.log('Client aborted the request, aborting backend request');
    }
  });

  proxy.web(req, res, { target }, (proxyErr) => {
    if (proxyErr) {
      console.error('Failed to proxy request:', proxyErr);
      console.error('Failed to proxy request:', req.headers);
      if (!res.headersSent.........完整代码请登录后点击上方下载按钮下载查看

网友评论0