【问题标题】:How can I receive external program events in a node.js app and affect current Socket.IO connections?如何在 node.js 应用程序中接收外部程序事件并影响当前的 Socket.IO 连接?
【发布时间】:2013-03-21 05:52:20
【问题描述】:

我正在使用一个程序 (pianobar),它可以选择在某些事件发生时运行程序。我想从这些事件中获取信息到我的 node.js 应用程序中,以便我可以将其发送到通过 socket.io 连接的客户端。

到目前为止,我想出的最佳想法是有一个中间件程序,该程序从钢琴条中获取输入并将其写入文件。然后我可以使用fs.watchFile 观看文件。

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

【问题讨论】:

  • curl 或命名管道怎么样?
  • 我知道命名管道是如何工作的,但是curl 是如何工作的呢?我想我可以将信息写入文件,然后让客户端异步拉入。
  • 把结果卷起来。我不知道您的数据是什么样的,但curl -X POST localhost/feed-data -d <(your command here) 可能会解决问题。见here
  • 使用fs.watchFile 是一个简单的解决方案,但它可能适合您的设置。如果你想要更健壮的东西(读/写文件可能会产生并发问题),你可以看看redis

标签: linux node.js express socket.io


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-10
    相关资源
    最近更新 更多