如何从Web浏览器(客户端)建立TCP套接字连接?

Her*_*che 23 sockets flash ajax applet websocket

我读过WebSockets,但它们似乎不是纯粹的"套接字",因为它们上面有一个应用程序层协议." ws: "

有没有办法从网络浏览器进行纯套接字连接,搞活网页?

这是我在黑暗中的随机刺伤

  • Java提供的Applet套接字(需要安装java)
  • Flash提供的Flash插槽(需要安装闪存)

但是关于HTML5,如果它们不是套接字,为什么它们被称为WebSockets?

websocket协议是如此简单实现,以至于它几乎是"套接字"?

kan*_*aka 50

我读过WebSockets,但它们似乎不是纯粹的"套接字",因为它们上面有一个应用程序层协议.

[websocket协议]实现起来如此简单,以至于"几乎"是"套接字"吗?

直接从浏览器允许常规套接字连接永远不会发生,因为它会带来巨大的风险.WebSockets与您将获得的浏览器中的原始套接字非常接近.初始WebSockets握手类似于HTTP握手(允许Web服务器代理/桥接它)并添加CORS类型安全性.此外,WebSockets是基于消息的传输(而不是作为原始TCP的流传输),这是在每个消息帧上使用双字节头完成的.

即使闪存也无法完全建立原始TCP连接.闪存套接字还添加了CORS安全性,但闪存套接字连接不是带内握手,而是与目标服务器上的端口843建立连接以请求安全策略文件.

有没有办法从网络浏览器进行纯套接字连接,搞活网页?

是的,您可以使用我的websockify网桥/代理,它允许支持WebSockets的浏览器通过websockify直接连接到TCP套接字.

但是关于HTML5,如果它们不是套接字,为什么它们被称为WebSockets?

WebSockets是基于TCP套接字构建的传输.握手之后,开销非常小(通常只有两个字节的标头).