我遇到了一个大问题,很难解决。我有一个定制的游戏控制器,它通过串行通信从传感器输出一些数据,并通过串行端口连接到PC。我在Matlab脚本中调用当前控制器的位置。我正在构建一个网络应用程序,它将在网络浏览器中显示设备的数据(位置),但似乎无法解决如何将我的设备连接到浏览器。Matlab脚本将所有位置数据发送到UDP端口,采样频率为100HZ(每秒100个样本)。我需要在网络浏览器和我的matlab脚本之间建立持久的连接,这样我才能显示数据。我正在考虑使用web套接字API。但它不会"说出"UDP。因此,我的想法是用自定义Python服务器从UDP读取数据,然后在该Python服务器上创建一个websocket,并将通过UDP端口接收的数据发送到web浏览器。哦,如果我能双向交流就好了。这行得通吗?有什么想法吗?这通常是如何做到的,我的意思是,如何将温度传感器连接到网络浏览器以实时显示数据?
任何回答都将不胜感激。
谢谢,Leon
请注意,尽管WebSockets协议是建立在TCP套接字上的,但WebSocket协议不是原始TCP套接字。WebSockets连接具有HTTP友好握手(内置一些CORS功能)。WebSocket也是基于消息的(而不是像TCP那样的流式传输),因此每条消息都有几个字节的帧头。
你可以看看webstockify(免责声明:我制作了webstockify)。Websockify是一个在WebSockets和普通TCP套接字之间桥接/代理的python服务器。我不认为调整它来处理后端的UDP套接字会特别困难。
WebSockify(设计用于与包含的include/websock.js前端库一起使用)支持二进制数据,即使是在较旧版本的Hixie协议上也是如此。这使它能够与iOS(iPhone、iPad)设备配合使用,这些设备仍然只支持旧版本的协议。