websocket 学习笔记
来源:互联网 发布:c语言有多少个函数 编辑:程序博客网 时间:2024/05/19 19:55
今天在学习websockt中时,无意间看到此条从百度知道看到的,遂复制记录了下来
ebSocket 可能进入某种半死不活的状态。这实际上也是原有网络世界的一些缺陷性设计。WebSocket 长连接虽然解决了服务器和客户端两边的问题,但坑爹的是网络应用除了服务器和客户端之外,另一个巨大的存在是中间的网络链路。一个 HTTP/WebSocket 连接往往要经过无数的路由,防火墙。你以为你的数据是在一个“连接”中发送的,实际上它要跨越千山万水,经过无数次转发,过滤,才能最终抵达终点。在这过程中,中间节点的处理方法很可能会让你意想不到。
比如说,这些坑爹的中间节点可能会认为一份连接在一段时间内没有数据发送就等于失效,它们会自作主张的切断这些连接。在这种情况下,不论服务器还是客户端都不会收到任何提示,它们只会一厢情愿的以为彼此间的红线还在,徒劳地一边又一边地发送抵达不了彼岸的信息。而计算机网络协议栈的实现中又会有一层套一层的缓存,除非填满这些缓存,你的程序根本不会发现任何错误。这样,本来一个美好的 WebSocket 长连接,就可能在毫不知情的情况下进入了半死不活状态。
而解决方案,就是让服务器和客户端能够发送 Ping/Pong Frame(RFC 6455 - The WebSocket Protocol)。这种 Frame 是一种特殊的数据包,它只包含一些元数据而不需要真正的 Data Payload,可以在不影响 Application 的情况下维持住中间网络的连接状态。
阅读全文
0 0
- websocket学习笔记
- WebSocket学习笔记一
- websocket学习笔记
- WebSocket学习笔记
- WebSocket学习笔记
- Websocket学习笔记
- Android WebSocket 学习笔记
- WebSocket学习笔记
- websocket学习笔记
- WebSocket 学习笔记
- websocket 学习笔记
- WebSocket学习笔记——无痛入门
- HTML5下的WebSocket学习笔记
- MQTT学习笔记-让Mosquitto支持Websocket
- WebSocket学习笔记——无痛入门
- WebSocket学习笔记——无痛入门
- Spring Boot学习笔记(六) WebSocket
- WebSocket笔记
- Cocos2d-x 3.x游戏开发之旅---<把角色放在屏幕中间>
- JPEG
- Speed/accuracy trade-offs for modern convolutional object detectors
- Qt读取json文档内容
- 基于MFC框架的C++游戏开发(二)建立工程、调整窗口
- websocket 学习笔记
- 在你的代码之外,服务时延过长的三个追查方向(上)
- 联想电脑怎么进入bios设置u盘启动
- Python requests模块学习笔记
- Cocos2d-x 3.x游戏开发之旅---<Lambda>
- NFS原理流程及RPC服务的介绍
- tomcat启动闪退问题
- android studio导出aar,提供SDK给第三方调用
- dinic算法,就是优化的EK算法