mirror of
https://github.com/meteor/meteor.git
synced 2026-05-02 03:01:46 -04:00
Merge pull request #120 from meteor/avital-websockets
Proxy websocket requests into inner web server
This commit is contained in:
@@ -96,6 +96,25 @@ var start_proxy = function (outer_port, inner_port, callback) {
|
||||
}
|
||||
});
|
||||
|
||||
// Proxy websocket requests using same buffering logic as for regular HTTP requests
|
||||
p.on('upgrade', function(req, socket, head) {
|
||||
if (Status.listening) {
|
||||
// server is listening. things are hunky dory!
|
||||
p.proxy.proxyWebSocketRequest(req, socket, head, {
|
||||
host: '127.0.0.1', port: inner_port
|
||||
});
|
||||
} else {
|
||||
// Not listening yet. Queue up request.
|
||||
var buffer = httpProxy.buffer(req);
|
||||
request_queue.push(function () {
|
||||
p.proxy.proxyWebSocketRequest(req, socket, head, {
|
||||
host: '127.0.0.1', port: inner_port,
|
||||
buffer: buffer
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
p.on('error', function (err) {
|
||||
if (err.code == 'EADDRINUSE') {
|
||||
process.stderr.write("Can't listen on port " + outer_port
|
||||
|
||||
Reference in New Issue
Block a user