建议 - 从客户端到服务器的实时数据处理

时间:2011-11-19 20:08:22

标签: real-time event-driven data-stream

我正在寻求有关如何实现以下目标的建议/指导:

我安装了一个电路并连接到Arduino,我可以使用Python和pySerial模块轻松地从中检索数据。它允许我确定模拟输入随时间的变化值。

目前我将这些数据存储到一个文件中,带有时间戳和相应的值,我很想听听有关如何将这些数据“共享”到网络服务器并“播放”它的意见和想法住。

是否可以将值“流式”传输到转储文件中并通过AJAX请求同时从中检索数据,或者我应该查看事件驱动的Web服务器,如“Tornado”,“Twisted”......

我有点迷失在这里。仅仅为了记录,我对PHP和JavaScript的最终输出感到满意,我只是不知道如何不断“流式传输”我需要的数据。

提前致谢。

1 个答案:

答案 0 :(得分:1)

如果您不打算过多地更新Ardunio设备,那么让Python组件继续通过串行端口收集数据并以易于被服务使用的方式发布它是有意义的。可以更有效,更灵活的方式分发信息。

e.g。

  1. 从串口读取数据并将消息发布到消息队列中。然后,任何其他组件都可以读取消息队列,然后可以将数据分发到其他应用程序/客户端。
  2. 对可以处理每个更新并分发给其他应用程序/客户端的服务器进行Web调用。
  3. 您可以使用Pusher(我工作的人)之类的东西,并调用REST API将每条消息传递给任何连接的客户端。虽然这是分发数据的好方法,但即使没有客户正在收听数据,您也会发布数据,所以我认为您最好先将数据发送到Web服务器这样的组件。
  4. 假设您使用1或2,则可以使用realtime web solution将数据分发给任意数量的客户端。您可以在这里使用Pusher,也可以使用自托管解决方案。

    因此,我认为数据流将是:

    Ardunio - >小型Python应用程序 - >队列(或对Web服务器的HTTP请求) - >实时网络技术 - >许多客户