websocketd与json over STDIN / STDOUT

时间:2015-07-01 16:18:45

标签: json go websocket

我们构建的软件由两部分组成,一个在浏览器中运行的GUI(前端)和一个内核(后端),Go编译成exe。

为了将这两个部分粘合在一起,我们在本地机器上运行了nodejs + expressjs + socket.io。 Nodejs通过http / socket.io与浏览器对话,它也会产生"产生"将exe作为child_process。

现在使用websocketd,我们可以跳过nodejs + expressjs + socket.io部分。那很好。

难点在于:浏览器中的GUI用于将JSON发送到nodejs,然后将其写入配置文件。我们的内核exe将读取该JSON配置文件以确定要执行的操作。

我猜不能通过STDIN / STDOUT发送JSON。我当然可以做命令行" flag" for Go to parse。

问题:有更好的方法吗?

2 个答案:

答案 0 :(得分:1)

您可以在go app中运行websocket服务器,在那里您可以处理所有相关的路由和逻辑。它可能会使事情变得更简单,更灵活。

这是我之前使用过的库,可以推荐: https://github.com/gorilla/websocket

答案 1 :(得分:0)

这对派对来说已经很晚了,而且可能在这一点上无济于事,但它可能有助于未来的人看到这一点。

Websocketd支持二进制传输类型并删除/n行结尾。这可以通过缓冲输入和输出二进制流来使用,并且只是在两端读取它们作为json。

https://github.com/joewalnes/websocketd/issues/38

websocketd --devconsole --port 8080 --binary --devconsole stdbuf -i0 -io0 cat

--binary标志是该链接的重要部分。 (甚至连链接都死了)。