我可以打开与任意端口上运行的本地服务器的websocket连接吗?

时间:2011-05-17 18:17:50

标签: websocket sensor

我有一台本地服务器输出我的实时家庭传感器数据,我想在浏览器中将其可视化。

我的问题是,我可以使用websocket打开从浏览器到本地服务器的连接吗?我该怎么做呢?

本地服务器在非http指定的端口号上运行,我无法改变它。

1 个答案:

答案 0 :(得分:7)

是和否。

WebSockets不是原始TCP连接。它们具有HTTP兼容握手(为了安全性和与现有服务器的兼容性),并且为每个数据包设置了一些最小的框架,以使WebSockets成为基于消息的协议。此外,截至今天,浏览器中存在的当前WebSocket API和协议不直接支持二进制数据消息。它们只有UTF-8编码的有效载荷。

您可以使用websockify将WebSockets连接代理到原始二进制TCP服务器。 websockify是一个python代理/桥接器,具有二进制支持,还包括一个javascript库,可以更轻松地与它进行交互。此外,websockify还包括web-socket-js后备/ polyfill(在Flash中实现),适用于没有本机WebSockets支持的浏览器。缺点是您必须在某处运行websockify(在客户端系统,服务器系统或其他系统上)。此外,websockify目前只是Linux / UNIX。从好的方面来说,websockify有一个特殊模式,您可以使用它来启动和包装现有服务。

免责声明:我制作了websockify。