coder / coder/code-server

[Feature Request] Intercepting hardcoded localhost WebSockets for HMR (.NET Hot Reload / dotnet watch)

Đang mở
#7,976 2 bình luận 0 reaction 0 người được giao Xem trên GitHub
enhancement
Ngôn ngữ chính
TypeScript
Star
79.3k
Fork
6.8k
Merge trung bình
2 ngày 6 giờ
Pull request đã merge (30 ngày)
41

Mô tả

## What is your suggestion?
Implement a client-side interceptor or dynamic proxy mechanism within `code-server`'s browser context that can catch outbound WebSocket requests to `localhost:` and seamlessly route them through `code-server`'s built-in proxy layer back to the remote workspace.

## Why do you want this feature?
Developers relying on `code-server` for a pure browser-based development experience cannot use .NET's Hot Reload (`dotnet watch`).

When running `dotnet watch`, the .NET SDK dynamically injects a script (`aspnetcore-browser-refresh.js`) into the DOM that attempts to establish an HMR WebSocket connection to a random, ephemeral port on `localhost` (e.g., `ws://localhost:40777`).

Because the browser executes this locally, it queries the user's physical machine rather than the remote `code-server` container. The connection drops, and Hot Reload fails:
`Firefox can’t establish a connection to the server at ws://localhost:40777/`

Image

```
Firefox can’t establish a connection to the server at ws://localhost:43067/. aspnetcore-browser-refresh.js:318:25
WebSocket failed to connect. aspnetcore-browser-refresh.js:19:15
Firefox can’t establish a connection to the server at wss://localhost:33935/. aspnetcore-browser-refresh.js:318:25
WebSocket failed to connect. aspnetcore-browser-refresh.js:19:15
Unable to establish a connection to the browser refresh server. aspnetcore-browser-refresh.js:23:13
```

## Are there any workarounds to get this functionality today?
There are no workarounds for a **pure browser** workflow (e.g., coding on an iPad or a locked-down laptop without CLI access).

## Are you interested in submitting a PR for this?
No, I do not have the familiarity with the `code-server` networking/proxy codebase to implement this reliably.

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Hướng nghiên cứu

The payload names no code-server files or tests. Start by tracing browser-context handling of outbound localhost WebSockets and the built-in proxy layer, then examine how the injected aspnetcore-browser-refresh.js uses ephemeral ws/wss ports. Done should be a pure-browser dotnet watch workflow where Hot Reload connects through code-server without localhost failures.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
typescript
Lĩnh vực
devtools, networking
Loại issue
Tính năng
Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức độ hoạt động
Sôi nổi
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
35/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.