2013-03-18 33 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)快速並乾淨地編寫客戶端程序。

相關問題