Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.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
Html 为什么WebSocket使用握手来连接服务器?_Html_Websocket - Fatal编程技术网

Html 为什么WebSocket使用握手来连接服务器?

Html 为什么WebSocket使用握手来连接服务器?,html,websocket,Html,Websocket,我已经使用WebSocket API创建了我的个人项目, 当我阅读w3c的WebSocket规范时,有一件事在我脑海中浮现出来,那就是问题。 为什么WebSocket使用握手连接服务器? 我无法尝试使用套接字直接连接到服务器 谢谢,祝你今天愉快 你的问题不太准确,但我想我知道你的方向。如果我错了,请纠正我 新事物是:通过使用WebSocket升级头(在“握手”中),您可以调用到服务器的低延迟双向连接,并向端口80发出正常HTTP请求。然后,全双工连接通过服务器:80 我无法尝试使用套接字直接连接

我已经使用WebSocket API创建了我的个人项目,

当我阅读w3c的WebSocket规范时,有一件事在我脑海中浮现出来,那就是问题。

为什么WebSocket使用握手连接服务器?

我无法尝试使用套接字直接连接到服务器


谢谢,祝你今天愉快

你的问题不太准确,但我想我知道你的方向。如果我错了,请纠正我

新事物是:通过使用WebSocket升级头(在“握手”中),您可以调用到服务器的低延迟双向连接,并向端口80发出正常HTTP请求。然后,全双工连接通过服务器:80

我无法尝试使用套接字直接连接到服务器


你是说普通TCP套接字?你可以尝试,你可以尝试任何端口,任何协议,但是你想实现什么呢?如果您知道到server:80的HTTP连接可以升级到WebSocket连接,那么您可以自己编写相应的客户机代码,从普通TCP套接字开始。但是,由于您已经知道要连接到WebSocket服务器,因此应该像现代浏览器所提供的那样使用已建立的WebSocket客户端。

握手允许WebSocket连接与正常HTTP(S)通信一起使用,也可以在相同的端口上使用。握手的另一个目的是强制执行CORS(跨源)安全策略

握手并不是阻止WebSocket连接与正常TCP服务器一起使用的唯一原因。WebSocket协议的每个数据帧都有前导标头数据。这使得WebSocket成为一种基于消息的协议(而不是像TCP这样的原始流),并增加了对直接二进制数据支持的支持,还包括屏蔽数据(以保护WebSocket连接不受损坏的中介的影响)

如果您需要从浏览器连接到原始TCP服务,则可以使用WebSocket连接到TCP网桥/代理。免责声明:我制作了WebSocket