javascript - JS/HTML5 WebSocket : Connect without HTTP call

标签 javascript http html header websocket

好吧,我刚刚试用了 HTML 5 中的新 WebSocket 类,它们的存在让我非常兴奋;然而,我看不出它们比 AJAX 更有值(value),因为它们仍然发起 HTTP 调用并且不像传统套接字。这就是我在这里问的原因。

有没有办法使用 HTML 5 的 WebSocket 类连接到监听套接字而不发送 HTTP 数据?目前使用 TCP/IP 生成器时,它显示了我不想要的所有这些 header 废话(因为我想连接到 POP3/IMAP 服务器,而不需要像 Flash 桥或 Comet 这样的东西)。

可能吗?

连接输出:

Listening for connections...Connected
GET / HTTP/1.1
Upgrade: WebSocket
Connection: Upgrade
Host: localhost:666
Origin: null
Sec-WebSocket-Key1: 2 987_390VNw60yi9
Sec-WebSocket-Key2: ~196  Y p  5    P67 428  ?

最佳答案

没有。建立连接后,您就有了一个真正的套接字。但你是对的,它需要特殊的服务器支持。因此它不会让您连接到未修改的 POP 或 IMAP 服务器。

他们选择了这种设计(升级机制),因此您可以轻松拥有一个服务器来监听 WebSocket 连接以及真正的 HTTP 请求。

与AJAX和COMET还是有很大区别的。您可以使用 WebSockets 在服务器和客户端之间实现真正的全双工通信。以前的浏览器 API 没有提供这一点,迫使人们使用各种变通方法(例如重复的 AJAX 请求、COMET 的永久框架等)。

关于javascript - JS/HTML5 WebSocket : Connect without HTTP call,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4590447/

相关文章:

javascript - jQuery .before() 重新执行 javascript

javascript - 在 Microsoft Dynamics CRM 2011 中查找两个日期之间的工作日数

javascript - 如何在 iFrame 上使用 CSP

javascript - 为什么 (![]+[])[+!![]+[]] 产生 "a"

javascript - 创建一个按钮来控制 JavaScript 创建一些元素。然后,如果这些元素中的任何一个发生变化,请执行某些操作

http - Meteor HTTP 发布请求不适用于 google add place api

java - 从外部应用程序登录 Content Navigator

HTTP NTLM 身份验证

javascript - 抓取最近的前一个 div 的内容

HTML 不可见提交输入的缺陷和优势