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

StackOverflow https://stackoverflow.com/questions/6035292

  •  14-11-2019
  •  | 
  •  

我有一个输出我的实时家庭传感器数据的本地服务器,我想在浏览器中显示它。

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

本地服务器在非HTTP指定端口号上运行,我无法更改。

有帮助吗?

解决方案

Yes and no.

No:

WebSockets are not raw TCP connections. They have an HTTP compatible handshake (for both security and compatibility with existing servers) and have some minimal framing for each packet to make WebSockets a message based protocol. Also, the current WebSocket API and protocol that exists in browsers as of today do not directly support binary data messages. They only UTF-8 encoded payloads.

Yes:

You can use websockify to proxy a WebSockets connection to a raw binary TCP server. websockify is a python proxy/bridge that has binary support and also includes a javascript library to make interacting with it easier. In addition, websockify includes the web-socket-js fallback/polyfill (implemented in Flash) for browser that do not have native WebSockets support. The downside is that you have to run websockify somewhere (either on the client system, the server system, or some other system). Also, websockify is Linux/UNIX only for now. On the plus side, websockify has a special mode that you can use to launch and wrap an existing service.

Disclaimer: I made websockify.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top