2013-03-07 65 views
0

我一直在使用的WebSocket API创建我的个人项目,

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

一件事来过我的脑海的问题,而我从W3C阅读WebSocket的规格。

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

我不能尝试使用套接字直接连接到服务器吗?

谢谢,祝你有美好的一天!

回答

0

你的问题不是很确切,但我想我知道你在哪里。纠正我,如果我错了。

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

我不能尝试连接到服务器直接使用插座?

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

0

握手允许WebSocket连接与普通的HTTP(S)流量一起使用,并且也用于相同的端口。握手的另一个目的是执行CORS(跨源)安全策略。

握手不是防止与正常的TCP服务器正在使用WebSocket连接的唯一的事。 WebSocket协议的每个数据帧都有前导头数据。这允许WebSockets成为基于消息的协议(而不是像TCP那样的原始流式传输),并且增加了对直接二进制数据支持的支持,并且还包含屏蔽数据(用于保护WebSocket连接免受破坏的中介机制的影响。浏览器的原始TCP服务的话,你可以使用websockify这是对的WebSocket桥TCP /代理免责声明:我做了websockify

相关问题