2012-10-25 101 views
2

我希望得到关于能够处理来自设备的实时数据并根据输入做出决定的最佳服务器端代码的建议。一个简单的例子:假设我有一个网络启用的温度计,运行一个轻量级的TCP/IP客户端堆栈。当温度达到30度时,我希望设备与服务器联系,然后我希望服务器向我发送电子邮件。我也希望服务器能够发送一个命令来打开加热器。针对嵌入式设备的服务器端应用程序

这里的问题是能够从服务器启动TCP消息,并通过各种各样的任意防火墙和路由器,一直到客户端设备。我知道有一些“解决方法”,例如轮询服务器以获取更新,或者在我打电话给服务器的情况下进行“长轮询”,并在有需要发送的情况下保持连接处于打开状态。这里的问题是带宽。消息很少见,但很重要,所以标题和握手占流量的98%。

我一直在阅读WebSockets,看起来他们正是我需要的东西,尤其是在与HTML5配对时。

有没有人知道可以运行在云服务器上的随时可用的服务器软件包,并使用一些标准化的方法将数据推送到我的设备?我真的不想在这里重新发明轮子,我不能相信我是第一个尝试这种方式的人。我看到一些人用他们自己的专有解决方案来做,但我更感兴趣购买一站式套餐。

回答

1

WebSocket由于其低开销,低延迟以及与Web和一般网络基础结构的兼容性而成为将嵌入式设备连接到后端基础架构的有效选择。有一个广泛的服务器实现可用,即基于Jetty,node.js等

作为一个例子,这里是一个演示连接一个Arduino设备到WebSocket服务器和浏览器客户端显示实时数据图表:

那里使用,AutobahnPython的技术,是一种基于Python /扭曲的WebSocket实现,

  • 提供服务器和客户端执行
  • 像RasperryPi嵌入式设备直接运行
  • 可以很容易地通过串行或CAN总线(由于扭曲支持非常好)
  • 提供RPC和PubSub的messsaging连接的接入传感器WebSocket上的图案

该技术是开源的,因此您可以推出自己的解决方案。如果您寻求帮助/服务以便为您完成,请与我联系;)我们还提供Tavendo WebMQ,一种虚拟设备(VMware,EC2),它增加了功能,管理UI等,还包括一个REST API以将数据推送到WebSocket客户端。

声明:我是Autobahn的作者,为Tavendo工作。

+0

我其实刚刚发生在高速公路上,它看起来很有趣。我怎样才能直接与你联系? –

+0

给我发一封邮件:tobias“dot”oberstein“at”tavendo“dot” – oberstet

+0

我刚刚通过电子邮件联系了@ ...这是否会奏效? –

相关问题