如何在嵌入式设备服务器上实现websockets?

时间:2010-02-03 19:02:27

标签: embedded push embedded-linux websocket embeddedwebserver

我正在与一家电子设备制造商合作,将基于LAN的控制系统嵌入到产品中。我们的想法是通过Web浏览器提供系统配置/控制界面,以便客户永远不需要安装软件。我们可以通过嵌入式模块发送和接收串行数据与设备通信。由于设备也可以通过前面板UI进行控制,因此在保持远程Web界面同步且极低延迟方面存在挑战。似乎websockets或某种Push是我们处理从服务器到客户端的实时事件所需要的。

我使用的是Lantronix Mathport AR嵌入式设备服务器。开箱即用的单元将提供任何自定义HTML和Java servlet / applet。如果我们需要更多灵活性,我们可以选择安装轻量级Linux发行版。我不确定如何实现任何服务器端应用程序,因为该设备没有运行标准Apache。我相信它正在使用Boa。

任何人都可以指导我如何做到这一点的正确方向?

3 个答案:

答案 0 :(得分:2)

一些常规信息...... WebSocket协议(draft spec here)是TCP之上的一个简单层。这意味着,如果您的平台已经有TCP服务器,那么实现WebSocket只需要几个小时。该协议指定握手和两种发送数据帧的方式。

我强烈建议您先阅读39页规格。

答案 1 :(得分:2)

正如Tihauan已经提到过的,从阅读规范开始,并且还注意到仍然有一些变化正在进行,尽管现在websockets比1年前更稳定。

对我来说,关键点是要求websocket数据完全是UTF-8文本,这非常适合基于JSON的消息定义。

我们的系统使用嵌入式Linux的形式,因此我们添加并使用了以下库:

使用上面的支持库,我们创建了一个内部轻量级“客户端/服务器”,允许我们的其他软件模块注册某些适用的websocket消息,并根据需要进行响应。工作得很好。

祝你好运和最好的问候,

答案 2 :(得分:0)

我来晚了一些,但是Mozilla发布了一个名为“编写WebSocket服务器”的指南,从字面上指导您编写Websocket服务器。

  

您将需要已经知道HTTP的工作原理并具有中等的编程经验。根据语言支持,可能需要了解TCP套接字。本指南的范围是介绍编写WebSocket服务器所需的最低知识。

https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API/Writing_WebSocket_servers