Web 实时通信:从短轮询到 WebSocket
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
在互联网早期,网页像一本翻页杂志:用户点击,浏览器请求,服务器响应,页面刷新。当产品经理提出“实时聊天”“股价闪动”“库存秒变”这些需求时,HTTP 的“请求—响应”模型立刻显得力不从心。于是,开发者经历了一场从“笨拙轮询”到“优雅全双工”的技术进化。今天,就让我们再走一遍这条路。 一、短轮询思路简单到极致: 客户端每隔 X 秒发一次 Ajax,问“有新消息吗?”服务器答“没有”——循环往复。 ![]() 伪代码 ![]() 痛点
短轮询就像给服务器打“骚扰电话”,简单,却低效。 二、长轮询聪明的工程师想到: 把电话“挂起不挂线”。客户端发起 Ajax,服务器夯住这个连接,直到真的有消息才返回;客户端收到后立即再挂一个,如此循环。 ![]() 优势
新问题
长轮询把“骚扰电话”变成了“占线等待”,但线路资源依旧吃紧。 三、WebSocketHTML5 带来了 WebSocket——基于 TCP 的全双工通道。 握手阶段仍用 HTTP,升级协议后,双方可随时推送数据帧。 ![]() 1. 握手:HTTP 的极限操作 客户端: ![]() 服务器返回 101: ![]() 状态码 101 表示:协议升级完成。此后数据帧不再走 HTTP。 2. 通信:帧级协议,双向飞驰
3. 代码示例(Node + 前端) 前端 ![]() Node 后端(ws 库) ![]() 四、使用场景与权衡![]() 阅读原文:点击这里 该文章在 2025/8/15 20:59:53 编辑过 |
关键字查询
相关文章
正在查询... |