我有一個Node.jshttp
服務器有時用作代理服務器端代碼的一些不同的語言編寫的代碼。node.js直接寫入底層http
所以有時(但並非總是)http
請求將通過套接字傳遞給服務器應用程序。來自應用程序的響應已經包含了http頭文件。
問題是,我想簡單地將應用程序響應寫入http響應流,而不必擔心分別寫入標題和內容。
我可以使用網絡套接字來實現整個http服務器,但是我想最終實現一個節點http框架作爲前端。
使用http
模塊,是否有直接寫入底層響應套接字的方法?
我有一個Node.jshttp
服務器有時用作代理服務器端代碼的一些不同的語言編寫的代碼。node.js直接寫入底層http
所以有時(但並非總是)http
請求將通過套接字傳遞給服務器應用程序。來自應用程序的響應已經包含了http頭文件。
問題是,我想簡單地將應用程序響應寫入http響應流,而不必擔心分別寫入標題和內容。
我可以使用網絡套接字來實現整個http服務器,但是我想最終實現一個節點http框架作爲前端。
使用http
模塊,是否有直接寫入底層響應套接字的方法?
當請求進入時,您應該能夠訪問請求的connection
屬性。
var http = require('http');
http.createServer(function (req, res) {
req.connection.write(/* your data here */);
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');
請注意,如果您這樣做,您還負責完成時關閉連接。 您也可以將兩個流一起管道。
我不確定這是否會有所幫助 - 但也許看看socket.io/engine.io如何處理「升級」請求可能是一個好的開始?請參閱:[engine.io.js](https://github.com/LearnBoost/engine.io/blob/433aa787b3ed64a3bc23bec6f4904f4fb567ec9f/lib/engine.io.js) – dc5
反向HTTP代理是處理此問題的最合適方法 - - [http-proxy](https://github.com/nodejitsu/node-http-proxy)正是你正在尋找的。 – josh3736