一个基于Web的RDP客户端,使用Go WebAssembly和grdp构建。直接从浏览器连接到Windows远程桌面服务器——无需插件。
Browser (WASM) ──WebSocket──► proxy (Go) ──TCP──► RDP Server
因为浏览器无法打开原始TCP套接字,一个轻量级的Go代理服务器将浏览器的WebSocket连接桥接到RDP服务器的TCP端口。
git clone https://github.com/nakagami/grdpwasm.git
cd grdpwasm
make all
make all 生成:
| 输出 | 描述 |
|---|---|
static/main.wasm | Go WASM 二进制文件(在浏览器中运行) |
static/wasm_exec.js | Go 运行时 JS 支持文件 |
proxy/proxy | WebSocket 到 TCP 代理 + 静态文件服务器 |
make serve
# 或等价地:
./proxy/proxy -listen :8080 -static static
然后在浏览器中打开 **http://localhost:8080**。
| 标志 | 默认值 | 描述 |
|---|---|---|
-listen | :8080 | 监听地址和端口 |
-static | static | 提供静态文件的目录 |
http://localhost:8080。3389)所有标准键盘输入通过RDP扫描码转发到远程桌面。完全支持鼠标移动、按钮点击和滚轮。
注意: 浏览器标签页必须拥有焦点才能转发键盘事件。 如果按键停止响应,请点击画布区域内部。
远程音频通过RDPSND流式传输,并通过浏览器的Web Audio API播放(PCM 44100 Hz,立体声,16位有符号小端字节序)。
make wasm # rebuild only the WASM binary
make proxy # rebuild only the proxy server
make wasm_exec # refresh wasm_exec.js from the local Go toolchain
make clean # remove all build artifacts
GPLv3 — 参见 grdp 许可证。