@@ -12,7 +12,7 @@ dotenv.config({ path: path.join(__dirname, '..', '.env') })
1212interface BrowserClient {
1313 ws : WebSocket
1414 version : string
15- id : number
15+ id : string
1616 user_agent : string
1717 profile_name ?: string
1818 is_alive : boolean
@@ -26,8 +26,7 @@ interface VSCodeClient {
2626
2727class WebSocketServer {
2828 private vscode_clients : Map < string , VSCodeClient > = new Map ( )
29- private browser_clients : Map < number , BrowserClient > = new Map ( )
30- private browser_client_counter : number = 0
29+ private browser_clients : Map < string , BrowserClient > = new Map ( )
3130 private connections : Set < WebSocket > = new Set ( )
3231 private server : http . Server
3332 private wss : any
@@ -117,25 +116,15 @@ class WebSocketServer {
117116
118117 private _create_http_server ( ) : http . Server {
119118 return http . createServer ( ( req : any , res : any ) => {
120- res . setHeader ( 'Access-Control-Allow-Origin' , '*' )
121- res . setHeader ( 'Access-Control-Allow-Methods' , 'GET, OPTIONS' )
122- res . setHeader ( 'Access-Control-Allow-Headers' , 'Content-Type' )
123-
124- if ( req . method == 'OPTIONS' ) {
125- res . writeHead ( 204 )
126- res . end ( )
127- return
128- }
129-
130119 const url = new URL ( req . url || '' , `http://localhost:${ DEFAULT_PORT } ` )
131120 if ( url . pathname == '/health' ) {
132121 const challenge = url . searchParams . get ( 'challenge' )
133122 const response : any = { status : 'ok' }
134123
135124 if ( challenge ) {
136- // eslint-disable-next-line @typescript-eslint/no-var-requires
137125 const {
138126 get_or_create_shared_token
127+ // eslint-disable-next-line @typescript-eslint/no-var-requires
139128 } = require ( '../utils/shared-token' )
140129 const token = get_or_create_shared_token ( )
141130 const signature = crypto
@@ -192,9 +181,7 @@ class WebSocketServer {
192181 const version = url . searchParams . get ( 'version' ) || 'unknown'
193182 const user_agent = url . searchParams . get ( 'user_agent' ) || 'unknown'
194183 const profile_name = url . searchParams . get ( 'profile_name' ) || undefined
195-
196- this . browser_client_counter ++
197- const id = this . browser_client_counter
184+ const id = url . searchParams . get ( 'browser_id' ) || crypto . randomUUID ( )
198185
199186 const client : BrowserClient = {
200187 ws,
0 commit comments