赞
踩
websocket是一种在单个TCP连接上进行全双工通信的协议。通过HTTP/1.1协议的101状态码进行握手。
目的是解决HTTP协议通信只能由客户端发起的缺陷。使用更优的方式实现推送技术,避免轮询需要的频繁的HTTP请求的开销。
2008年技术出现,对应RFC为 6455,2011年确定。https://www.rfc-editor.org/rfc/rfc6455
随后RFC 7936补充
在TCP之上,可以基于TLS层建立加密通道,类似HTTPS。
URI的形式像这样 ws://example.com:80/some/path,加密为 wss:///example.com:80/some/path,可以被浏览器识别,进而使用websocket协议进行交互。
3.websocket消息帧
4.个人理解
websocket就是在TCP之上的一个基于帧的消息传输协议,但是可以通过HTTP/1.1协议进行握手,以兼容现有的中间代理等基础设施。
与原始HTTP对比
与HTTP2对比
主流浏览器均支持
ios支持情况
android支持情况
websocketpp
websocket的C++库实现。
https://github.com/zaphoyd/websocketpp(5.9K)
https://www.zaphoyd.com/projects/websocketpp/
最近维护为2020年
gorilla/websocket
joewalnes/websocketd
https://zhuanlan.zhihu.com/p/407711596
https://www.ruanyifeng.com/blog/2017/05/websocket.html
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。