如何在浏览器和应用程序之间建立通信

时间:2012-02-29 22:41:55

标签: python browser udp websocket communication

我有一个大问题,我很难解决它。我有一个定制的游戏控制器,它通过串行通信从它的传感器输出一些数据,并通过串口连接到PC。我在Matlab脚本中调用当前控制器位置。我正在构建一个Web应用程序,它将在Web浏览器中显示设备的数据(位置),但似乎无法解决,如何将我的设备连接到浏览器。 Matlab脚本将所有位置数据发送到UDP端口,采样频率为100HZ(每秒100个样本)。我需要在Web浏览器和我的matlab脚本之间建立持久连接,这样我才能显示数据。我正在考虑使用Web套接字API。但它并没有“说”UDP。所以我的想法是以某种方式从UDP使用自定义Python服务器读取数据,然后在该Python服务器上创建websocket并将通过UDP端口接收的数据发送到Web浏览器。哦,如果我能在两个方向进行沟通,那就太好了。这会有用吗?关于如何做的任何想法?这通常是怎么做的,我的意思是如何连接让我们说一些温度传感器到网络浏览器实时显示数据?

任何答复都将很高兴。

谢谢, 利昂

1 个答案:

答案 0 :(得分:3)

请注意,虽然WebSockets协议是基于TCP套接字构建的,但WebSockets协议不是原始TCP套接字。 WebSockets连接具有HTTP友好握手(内置一些CORS功能)。 WebSockets也是基于消息的(而不是像TCP那样的流),因此每条消息都有几个字节的成帧头。

您可以查看websockify(免责声明:我制作了websockify)。 Websockify是一个python服务器,它在WebSockets和普通TCP套接字之间桥接/代理。我不认为让它适应处理后端的UDP套接字会特别困难。

WebSockify(旨在与包含的include / websock.js前端库一起使用)支持二进制数据,甚至可以在较旧的Hixie协议版本上使用。这使它可以与iOS(iPhone,iPad)设备一起使用,这些设备仍然只支持旧版本的协议。