11

tôi sử dụng nút-http proxy module để chạy ứng dụng với reverse proxy mà đang làm việc như mong đợi, trong một số trường hợp người dùng muốn chạy ứng dụng ngay mà tình trạng của nó trong tiến (ứng dụng chưa được lên) và có thể mất khoảng 3-15 giây cho đến khi ứng dụng được thiết lập và chạy. trong sử dụng trường hợp này sẽ nhận được lỗi từ proxyLỗi trong khi yêu cầu ứng dụng người dùng trước khi nó lên

proxy.web(req, res, { 
    target: 'http://' + hostname + ':' + Port 
    console.log("App------------->Proxy App"); 
}); 

proxy.on('proxyReq', function(proxyReq, req, res, options) { 
    console.log("App------------->Proxy Request"); 
}); 

    proxy.on('error', function (err, req, res) { 
    console.log("App------------->Proxy Error"); 
     res.end('Something went wrong'); 
    }); 

    // Listen for the `proxyRes` event on `proxy`. 
    proxy.on('proxyRes', function (proxyRes, req, res) { 
     console.log("App------------->Proxy Response") 
     var respState = res.statusCode 
    }); 

Trong trường hợp lỗi ngăn xếp trong nhật ký cũng giống như

  1. ứng dụng Proxy
  2. Proxy Yêu cầu
  3. Proxy Lỗi

Trong trường hợp này, người dùng sẽ chạy url ứng dụng trong trình duyệt và trước tiên sẽ gặp lỗi và sau vài giây khi làm mới trình duyệt, ứng dụng sẽ chạy OK. Bất kỳ đề xuất nào về cách giải quyết vấn đề này?

Tôi nghĩ về việc xây dựng một số API kiểm tra trạng thái proxy proxyRes (như gọi nó cứ sau 1 giây và xem phản hồi là 200 và không gửi lỗi trước khi "kiểm tra nó với thời gian chờ" và nếu sau 10 giây không phải là phản ứng có thể gửi lỗi nhưng không chắc chắn làm thế nào để làm điều đó và nếu cách tiếp cận tốt của nó ... bất kỳ ý tưởng? hoặc có thể thông qua webSoket nhưng không chắc chắn làm thế nào để làm điều đó ...

Đây là nguồn mở Im sử dụng https://github.com/nodejitsu/node-http-proxy

+0

Tôi không nghĩ rằng nút-proxy có thể đạt được điều đó vì nó chỉ bản yêu cầu để nhắm mục tiêu & Ống sao kết quả. và nếu không có phản hồi từ mục tiêu. nó chính xác gửi lại trạng thái http hoặc mã không phản hồi. trong trường hợp này, bạn phải xây dựng chức năng proxy của riêng bạn lặp lại yêu cầu cho đến khi nó nhận được mã trạng thái chính xác như 200 hoặc 30X. Tôi hi vọng cái này giúp được. – risyasin

+0

@risyasin - Cảm ơn nhưng quá muộn để thay đổi nó :(, bất kỳ ý tưởng nào khác làm sao tôi có thể lặp lại nó với mã JS/sự kiện? –

+0

Nếu người dùng sẽ sử dụng trình duyệt web, khi proxy không thành công, bạn có thể phản hồi HTML và phía máy khách JavaScritp với một GIF động đẹp mắt của "Đang tải" và một số yêu cầu asyncronous đến máy chủ của bạn sau mỗi 1 hoặc 2 giây Đặt một bộ đếm trong máy khách và làm cho kịch bản phía máy khách hiển thị một lỗi khi bạn nghĩ thử lại quá nhiều. – jlvaquero

Trả lời

Các vấn đề liên quan