@@ -5,6 +5,7 @@ import { logError } from "../../common/util"
55import { toVsCodeArgs } from "../cli"
66import { isDevMode } from "../constants"
77import { authenticated , ensureAuthenticated , redirect , self } from "../http"
8+ import { SocketProxyProvider } from "../socket"
89import { loadAMDModule } from "../util"
910import { Router as WsRouter } from "../wsRouter"
1011import { errorHandler } from "./errors"
@@ -13,6 +14,7 @@ export class CodeServerRouteWrapper {
1314 /** Assigned in `ensureCodeServerLoaded` */
1415 private _codeServerMain ! : CodeServerLib . IServerAPI
1516 private _wsRouterWrapper = WsRouter ( )
17+ private _socketProxyProvider = new SocketProxyProvider ( )
1618 public router = express . Router ( )
1719
1820 public get wsRouter ( ) {
@@ -77,9 +79,10 @@ export class CodeServerRouteWrapper {
7779 }
7880
7981 private $proxyWebsocket = async ( req : WebsocketRequest ) => {
80- this . _codeServerMain . handleUpgrade ( req , req . socket )
82+ const wrappedSocket = await this . _socketProxyProvider . createProxy ( req . ws )
83+ this . _codeServerMain . handleUpgrade ( req , wrappedSocket )
8184
82- req . socket . resume ( )
85+ req . ws . resume ( )
8386 }
8487
8588 //#endregion
@@ -130,5 +133,6 @@ export class CodeServerRouteWrapper {
130133
131134 dispose ( ) {
132135 this . _codeServerMain ?. dispose ( )
136+ this . _socketProxyProvider . stop ( )
133137 }
134138}
0 commit comments