@@ -647,8 +647,8 @@ HttpProxy.prototype.proxyWebSocketRequest = function (req, socket, head, buffer)
647
647
// If the reverseProxy connection has an underlying socket,
648
648
// then execute the WebSocket handshake.
649
649
//
650
- if ( typeof reverseProxy . socket !== 'undefined' ) {
651
- reverseProxy . socket . on ( 'data' , function handshake ( data ) {
650
+ reverseProxy . once ( ' socket' , function ( revSocket ) {
651
+ revSocket . on ( 'data' , function handshake ( data ) {
652
652
//
653
653
// Ok, kind of harmfull part of code. Socket.IO sends a hash
654
654
// at the end of handshake if protocol === 76, but we need
@@ -681,12 +681,12 @@ HttpProxy.prototype.proxyWebSocketRequest = function (req, socket, head, buffer)
681
681
socket . write ( sdata ) ;
682
682
var flushed = socket . write ( data ) ;
683
683
if ( ! flushed ) {
684
- reverseProxy . socket . pause ( ) ;
684
+ revSocket . pause ( ) ;
685
685
socket . once ( 'drain' , function ( ) {
686
- try { reverseProxy . socket . resume ( ) }
686
+ try { revSocket . resume ( ) }
687
687
catch ( er ) { console . error ( "reverseProxy.socket.resume error: %s" , er . message ) }
688
688
} ) ;
689
-
689
+
690
690
//
691
691
// Force the `drain` event in 100ms if it hasn't
692
692
// happened on its own.
@@ -701,7 +701,7 @@ HttpProxy.prototype.proxyWebSocketRequest = function (req, socket, head, buffer)
701
701
// Remove data listener on socket error because the
702
702
// 'handshake' has failed.
703
703
//
704
- reverseProxy . socket . removeListener ( 'data' , handshake ) ;
704
+ revSocket . removeListener ( 'data' , handshake ) ;
705
705
return proxyError ( ex ) ;
706
706
}
707
707
@@ -711,9 +711,9 @@ HttpProxy.prototype.proxyWebSocketRequest = function (req, socket, head, buffer)
711
711
//
712
712
// Remove data listener now that the 'handshake' is complete
713
713
//
714
- reverseProxy . socket . removeListener ( 'data' , handshake ) ;
714
+ revSocket . removeListener ( 'data' , handshake ) ;
715
715
} ) ;
716
- }
716
+ } ) ;
717
717
718
718
reverseProxy . on ( 'error' , proxyError ) ;
719
719
0 commit comments