Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JS/HTML5 WebSocket:无需HTTP调用即可连接_Javascript_Http_Html_Header_Websocket - Fatal编程技术网

Javascript JS/HTML5 WebSocket:无需HTTP调用即可连接

Javascript JS/HTML5 WebSocket:无需HTTP调用即可连接,javascript,http,html,header,websocket,Javascript,Http,Html,Header,Websocket,好吧,我刚刚在HTML5中试用了新的WebSocket类,并且非常兴奋它们的存在;然而,我看不出它们比AJAX更有价值,因为它们仍然可以发起HTTP调用,并且不像传统的套接字。这就是我在这里问的原因 HTML5的WebSocket类有没有一种方法可以在不发送HTTP数据的情况下连接到侦听套接字?目前使用TCP/IP builder时,它显示了我不想要的所有这些标题垃圾(因为我想连接到POP3/IMAP服务器,而不使用诸如闪存桥或Comet之类的东西) 可能吗 连接的输出: Listening f

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

HTML5的
WebSocket
类有没有一种方法可以在不发送HTTP数据的情况下连接到侦听套接字?目前使用TCP/IP builder时,它显示了我不想要的所有这些标题垃圾(因为我想连接到POP3/IMAP服务器,而不使用诸如闪存桥或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还有很大的区别。您可以使用WebSocket在服务器和客户端之间进行真正的全双工通信。以前的浏览器API没有提供这一点,这迫使人们使用各种变通方法(例如重复的AJAX请求、COMET的forever frame等)。

所以,基本上是AJAX无法关闭?有点像一个与AJAX结合的永久框架。漂亮,但同时也不那么漂亮。谢谢你提供的信息!握手后它不是一个纯粹的TCP套接字,因为每个帧都有额外的帧@在Di-0xide中,它实际上更像是一个具有类似HTTP的握手(以及一些最小帧)的套接字。握手使得向web服务器和代理添加WebSocket支持变得更容易,但仅此而已。这不是一个HTTP请求,它是一个WebSocket握手,看起来就像HTTP。@kanaka,我不是想暗示它是一个TCP套接字。还有许多其他类型(UDP、raw、域等)。WebSocket是另一个。从技术上讲,WebSocket连接使用TCP套接字:-)。但它不是一个纯/原始的TCP套接字。TCP、UDP等是OSI第4层(传输)。WebSocket更多地位于OSI第5层和第6层。理论上,您可以通过UDP(或域套接字等)建立WebSocket连接,但当前的WebSocket定义是基于TCP的。@kanaka,我没有说它是原始TCP套接字,只是说它是一个套接字(通过TCP实现)。只是更新;W3C似乎是在指定一个纯TCP/UDP套接字API,尽管我相信我们需要几年才能看到它的任何功能。