Skip to content

Commit 0113397

Browse files
committed
fix: wrap websocket in proxy
1 parent edcb6f1 commit 0113397

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

src/node/routes/vscode.ts

+6-2
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { logError } from "../../common/util"
55
import { toVsCodeArgs } from "../cli"
66
import { isDevMode } from "../constants"
77
import { authenticated, ensureAuthenticated, redirect, self } from "../http"
8+
import { SocketProxyProvider } from "../socket"
89
import { loadAMDModule } from "../util"
910
import { Router as WsRouter } from "../wsRouter"
1011
import { 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

Comments
 (0)