结合融云 WebSDK 了解 WebSocket 基本原理
近期使用融云开发聊天页面, 通过抓包, 发现融云 SDK 使用 WebSocket 实现与服务端通讯, 因此简单了解 WebSocket 的实现原理
融云 SDK 文档: https://docs.rongcloud.cn/v4/
WebSocket 与 HTTP
1、HTTP 协议没有为了 WebSocket 的出现改变
2、WebSocket 属于 HTTP 之后的新协议
3、两者有交集, 也各有不同
4、WebSocket 借用 HTTP 协议完成一部分握手
WebSocket 握手
通过抓包融云 WebSocket 请求, 重点关注以下几个字段
以上为发起 WebSocekt 请求抓包, 首先关注比 HTTP 多出的数值:
复制代码
复制代码
复制代码
复制代码
复制代码
再查看 Response Headers:
复制代码
复制代码
复制代码
复制代码
替代方案
浏览器没有完美替代 WebSocket 的方案. 只能用 ajax 轮询
或 长轮训(long poll)
模拟, 两者都有性能问题且耗费资源
ajax 轮询、长轮训说明:
https://zhuanlan.zhihu.com/p/25690011
评论