Skip to content

Commit

Permalink
[refactor] Listen for socket events since reverseProxy.socket is no…
Browse files Browse the repository at this point in the history
… longer set synchronously
  • Loading branch information
indexzero committed Dec 23, 2011
1 parent ea7fea6 commit 3828616
Showing 1 changed file with 8 additions and 8 deletions.
16 changes: 8 additions & 8 deletions lib/node-http-proxy/http-proxy.js
Expand Up @@ -647,8 +647,8 @@ HttpProxy.prototype.proxyWebSocketRequest = function (req, socket, head, buffer)
// If the reverseProxy connection has an underlying socket,
// then execute the WebSocket handshake.
//
if (typeof reverseProxy.socket !== 'undefined') {
reverseProxy.socket.on('data', function handshake (data) {
reverseProxy.once('socket', function (revSocket) {
revSocket.on('data', function handshake (data) {
//
// Ok, kind of harmfull part of code. Socket.IO sends a hash
// at the end of handshake if protocol === 76, but we need
Expand Down Expand Up @@ -681,12 +681,12 @@ HttpProxy.prototype.proxyWebSocketRequest = function (req, socket, head, buffer)
socket.write(sdata);
var flushed = socket.write(data);
if (!flushed) {
reverseProxy.socket.pause();
revSocket.pause();
socket.once('drain', function () {
try { reverseProxy.socket.resume() }
try { revSocket.resume() }
catch (er) { console.error("reverseProxy.socket.resume error: %s", er.message) }
});

//
// Force the `drain` event in 100ms if it hasn't
// happened on its own.
Expand All @@ -701,7 +701,7 @@ HttpProxy.prototype.proxyWebSocketRequest = function (req, socket, head, buffer)
// Remove data listener on socket error because the
// 'handshake' has failed.
//
reverseProxy.socket.removeListener('data', handshake);
revSocket.removeListener('data', handshake);
return proxyError(ex);
}

Expand All @@ -711,9 +711,9 @@ HttpProxy.prototype.proxyWebSocketRequest = function (req, socket, head, buffer)
//
// Remove data listener now that the 'handshake' is complete
//
reverseProxy.socket.removeListener('data', handshake);
revSocket.removeListener('data', handshake);
});
}
});

reverseProxy.on('error', proxyError);

Expand Down

0 comments on commit 3828616

Please sign in to comment.