
文章目录websocketd把命令行程序变成 WebSocket 服务写几行脚本就行websocketd把命令行程序变成 WebSocket 服务写几行脚本就行joewalnes/websocketd 是一个命令行工具它能包装一个现有的命令行程序然后通过 WebSocket 协议来访问它。换句话说只要你会写一个读取标准输入、输出到标准输出的可执行程序不管是 Python、Ruby、Bash、PHP、Go 还是其他语言就能用它搭出一个 WebSocket 服务完全不需要碰任何网络编程的库。启动后websocketd 会在指定端口上创建一个 WebSocket 服务端等待连接进来。每次有连接进来它就会 fork 出对应的进程连接关闭时进程也会结束。客户端发来的消息被管道送到进程的标准输入进程往标准输出打印的内容每遇到一个换行符就会作为一条 WebSocket 消息发回去。快速上手写一个每秒数一个数、数到 10 就断开的 WebSocket 端点。用 Bash 实现#!/bin/bashfor((COUNT1;COUNT10;COUNT));doecho$COUNTsleep1done先在命令行测试一下结果和预期一致再启动服务websocketd--port8080./count.sh前端页面只需要几行 JavaScript 就能连上!DOCTYPEhtmlpreidlog/prescriptvarwsnewWebSocket(ws://localhost:8080/);ws.onmessagefunction(event){document.getElementById(log).textContentevent.data\n;};/script直接用浏览器打开这个 HTML 文件用 file:// 协议就能工作。其他功能安装很简单下载一个可执行文件就能跑不需要安装器或包管理器。服务端脚本可以通过标准 CGI 环境变量拿到 WebSocket 请求的细节比如客户端 IP、查询参数、Cookie 等。它还附带了一个静态文件服务器和传统 CGI 服务器以及一个 WebSocket 开发者控制台方便在写前端之前先测试脚本。项目提供了多种编程语言的示例包括 Python、Ruby、Perl、PHP、Java、Go 等。适合的场景对于需要把现有的命令行工具或脚本快速暴露成 WebSocket 服务的场景websocketd 是最省力的方案。不需要改代码不需要引入 WebSocket 库写一个脚本加一行命令就能搞定。cketd 是最省力的方案。不需要改代码不需要引入 WebSocket 库写一个脚本加一行命令就能搞定。