TCP和HTTP规范有连接超时一说,所以长轮询并不能一直持续,服务端和客户端的连接需要定期的连接和关闭再连接。
WebSocket在请求头中有一个Connection:Upgrade字段,表示客户端想对协议进行升级,还有一个Upgrade:websocket字段,表示客户端想将请求协议升级为WebSocket协议。
WebSocket的特点:
1、WebSocket是有状态的协议。
2、WebSocket与HTTP使用的端口相同。这样,基本上所有的防火墙都不会阻止WebSocket连接。
3、WebSocket使用HTTP协议进行握手。
4、心跳消息(ping和pong)将被反复的发送,进而保持WebSocket连接一直处于活跃状态。
5、WebSocket连接关闭时将发送一个特殊的关闭消息。
6、WebSocket支持跨域,可避免Ajax的限制。
7、HTTP规范要求浏览器将并发连接数限制为每个主机名2个连接,但使用WebSocket时,当握手完成后,该限制就不存在了,因为此时的连接已经不再是HTTP连接了。
8、WebSocket协议支持扩展,用户可扩展协议,实现部分自定义的子协议。
9、更好的二进制支持以及更好的压缩效果。
微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。
我是程序员小迷(致力于C、C++、Java、Kotlin、Android、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。
欢迎关注。助您在编程路上越走越好!