通过tty格式的websocket传递进程输出



这是关于通用架构的问题,我不需要任何人为我解决这个小问题,尽管如果有人解决了,我不会生气;)。

假设我有一个生成标准unix进程的web应用程序(如Travis CI)。虽然从这样一个过程中选择stdout似乎很简单,但我更愿意使整个过程异步(例如Travis)。所以我想把整个输出通过一个websocket传递到一些基于web的终端模拟器中。

然而,我能找到的唯一模拟器是完全交互式的(即,它们允许用户输入,因此具有一些自定义的服务器端组件)。我的目标是拥有一段客户端代码,并将输出插入其中

那么,创建一个websocket,将其连接到服务器端进程的stdout(最好是模拟tty的颜色和扇形)并显示终端客户端需要什么呢?我发现有控制代码可以区分tty和文本文件,这些控制代码需要以某种方式编码在websocket上,但有关于这方面的文档吗?

我已经为.NET应用程序完成了这项工作。我认为这可能值得你作为一个例子。

我有一个名为NLog.Contrib.Targets.WebSocketServer的小.NET项目,它是一个使用WebSocket和AngularJS的日志观察程序。基本上,它通过WebSocket广播正在记录的数据,并且有一个AngularJS指令来显示数据。如何突出显示数据更多的是一种演示内容,因此它将取决于您使用的框架。基本上,这个组件连接到任何使用NLog作为日志框架的.NET应用程序,所以您可以尝试在Travis中自己找到一些可扩展性点,并将您的东西连接到那里。

关于附加到stdout,我有一个关于同样在.NET中的web交互式CMD.exe的概念证明,尽管您可以忽略stdin部分。如果您使用Mono,可能与Windows中的情况相同。

我认为这和你想要的非常相似。如果你有更具体的问题,请告诉我。

您可以使用STDWebsocket来实现这一点。例如,只需阅读index.html脚本标记即可。它应该能解决你的问题(或任何遇到这个问题的人)

相关内容

  • 没有找到相关文章

最新更新