这个项目能做什么

websocketd 提供了一种简单的方式,通过 WebSocket 暴露现有的命令行程序,而无需在程序本身中包含网络库。在选定端口启动后,它接受 WebSocket 连接,并为每个连接启动配置的可执行文件。来自浏览器的消息会写入进程的 STDIN,并附加换行符;而 STDOUT 中以换行符终止的输出则作为 WebSocket 消息返回给客户端。当任一方断开连接时,关联的进程及其进程组会被关闭。 后端程序可以用任何支持标准输入输出的语言编写,包括 shell 脚本、Python、Ruby、Perl、C、Go、PHP、Java、PowerShell、Lua 和 R。请求信息(如远程主机、路径、查询参数和 Cookie)通过 CGI 环境变量暴露给脚本。 其他功能包括静态文件服务器、经典 CGI 支持、监听 Unix 域套接字(可配置权限)、可选的 STDERR 转发(以带标签的 JSON 格式),以及内置的 WebSocket 开发者控制台,用于连接、发送帧和检查响应。该工具以单个独立可执行文件的形式分发,适用于 Linux、macOS 和 Windows,在 macOS 上可通过 Homebrew 安装。仓库中还链接了示例和示例项目,涉及实时系统统计、基于浏览器的 REPL、数据库访问、文件列表和游戏手柄输入。