2013-03-18 48 views
3

我正在使用一个程序(pianobar),它可以在某些事件发生时运行程序。我想从这些事件中获取信息到我的node.js应用程序中,以便我可以将它发送给通过socket.io连接的客户端。如何在node.js应用程序中接收外部程序事件并影响当前的Socket.IO连接?

到目前为止我所想到的最好的想法是有一个中间件程序,它接受来自pianobar的输入并将其写入文件。然后我可以使用fs.watchFile来观看文件。

是否有更好/更清洁/更直接的方法来做到这一点?

+0

“curl”或命名管道怎么样? – tjameson 2013-03-18 05:40:33

+0

我明白命名管道是如何工作的,但是'curl'将如何工作?我想我可以写信息到一个文件,然后让客户端异步拉它。 – bj13 2013-03-18 06:25:01

+0

只是蜷缩结果。我不知道你的数据是什么样的,但'curl -X POST localhost/feed-data -d <(你的命令在这里)'可能会有效。见[这里](http://mywiki.wooledge.org/BashGuide/InputAndOutput#Process_Substitution)。 – tjameson 2013-03-18 06:28:14

回答

1

根据涉及多少数据,最简洁的解决方案是遵循tjameson的建议并将数据发布到您的node.js应用程序。这样你就可以在你的应用程序中使用标准的HTTP,并且不需要求助于使用一次性文件方法。而且您可以使用标准工具(如cURL)快速并干净地编写客户端程序。

相关问题