如何在Node.js应用程序中接收外部程序事件并影响当前的Socket.IO连接?

3
我正在使用一个程序(pianobar),它可以在特定事件发生时运行另一个程序。我想将这些事件的信息传递到我的node.js应用程序中,以便我可以将其发送给通过socket.io连接的客户端。
目前我想到的最好的方法是编写一个中间件程序,将pianobar的输入写入文件。然后我可以使用fs.watchFile来监视该文件。
是否有更好/更干净/更直接的方法来做到这一点?

curl 或命名管道怎么样? - beatgammit
我理解命名管道的工作原理,但是curl如何工作呢?我猜我可以将信息写入文件,然后让客户端异步地拉取它。 - bj13
只需使用curl获取结果。我不知道你的数据是什么样子的,但是curl -X POST localhost/feed-data -d <(your command here)可能会解决问题。请参见这里 - beatgammit
1
使用 fs.watchFile 是一个简单的解决方案,但对于您的设置可能完全可以正常工作。如果您想要更强大的东西(读/写文件可能会创建并发问题),您可以看一下 redis - robertklep
1个回答

1
根据数据量的大小,最干净的解决方案是遵循tjameson的建议并将数据POST到您的node.js应用程序中。这样,您可以在应用程序中使用标准HTTP,而不需要使用一次性文件方法。您还可以使用标准工具,例如cURL,快速且干净地编写客户端程序。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接