GoMind Hub

推送技术,服务端push,实时化

计算机知识思维导图:推送技术,服务端push,实时化。网页展示前三层结构,可在线查看完整脑图并下载 GoMind 文件。

2026-08-25

计算机知识学习资料思维导图
## 推送技术,服务端push,实时化
### 推送技术,服务端push,实时化
#### 技术
##### 实现方式
#### 结构图
##### Untitled node
#### 开源框架选型
##### 服务端实现
#### 参考
##### 服务器 Push 技术
##### web服务器端推送技术简介 - 推酷
##### Web 实时推送技术的总结 - 推酷
##### PUSH 云服务和解决方案 - 推酷
##### web前端的实时化-上海 HTML5 峰会笔记整理与总结
##### Jack肖解读 Web 实时化(iWeb峰会 PPT内容) - 推酷

> 仅展示前三层结构;请在线查看完整脑图或下载 GoMind 文件。

推送技术,服务端push,实时化

推送技术,服务端push,实时化
Comet 本意是彗星,彗星尾巴痕迹很像长连接工作方式,所以 Comet 指代长连接
Ajax 轮询(polling)
iframe / htmlfile
script tag (不中断的连续请求)
Flash 通讯
Comet
Server-sent-events(SSE) 让服务端可以向客户端流式发送文本消息,在实现上,客户端浏览器中增加 EventSource 对象,使其能通过事件的方式接收到服务器推送的消息,在服务端,使用长连接的事件流协议,即请求响应时增加新数据流数据格式
SSE事件流以流式HTTP响应请求,客户端发起普通的 HTTP 请求,服务器以自定义的 text/event-stream 内容类型响应,然后通过事件传递数据
基于现有http协议,实现简单
断开后自动重联,并可设置重联超时
派发任意事件
跨域并有相应的安全过滤
优点
只能单向通信,服务器端向客户端推送事件
事件流协议只能传输UTF-8数据,不支持二进制流。
IE下目前所有不支持EventSource
缺点
Tip 如果代理服务器或中间设备不支持SSE,会导致连接失效,正式环境中使用通过TLS协议发送SSE事件流。
风险
Server-sent-events(SSE)
通信、股票、Feed、直播、共享桌面
客户端与服务频繁交互的情况下,如实时共享、多人协作等平台
使用场景
真正的全双工通信
支持跨域设置(Access-Control-Allow-Origin)
优点
采用新的协议,后端需要单独实现
客户端并不是所有浏览器都支持
代理服务器会有不支持websocket的情况
无超时处理
更耗电及占用资源
缺点
TIP 代理、很多现有的 HTTP 中间设备可能不理解新的 WebSocket 协议,而这可能导致各种问题,使用时需要注意,可以使借助 TLS ,通过建立一条端到端的加密信道,可以让 WebSocket 通信绕过所有中间代理。
风险
WebSocket
MQTT有C/C++语言和JAVA包实现。需要明确的是,MQTT更适用于设备终端和手机APP socket通信,而不能支持浏览器使用
如果要支持微信浏览器应用,还需要增加类似WebsocketServlet技术给浏览器提供支持,这时MQTT以JS接口进行封装,并被调用完成消息推送。
MQTT
CoAP是受限制的应用协议(ConstrainedApplication Protocol)的代名词。其基于UDP协议,也就是在设备终端上只需要底层实现UDP协议,而不需要实现较为复杂的TCP协议。这种协议用得比较小。笔者也没有用C语言模拟过,就不展开了
CoAP
实现方式
技术
Untitled node
结构图
Node (Socket.IO, WebSocket-Node, ws)
Jetty Websocket API
tomcat websoket
Netty项目 - 事件驱动的异步网络应用程序框架http://netty.io/
netty/netty
异步socket,http(客户端+服务器),websocket和socket.io库为android。 基于nio,而不是线程。
koush/AndroidAsync
用于Java的全功能Socket.IO客户端库,与Socket.IO v1.0及更高版本兼容。
socketio/socket.io-client-java
在Java上实现的Socket.IO服务器。 实时java框架
mrniko/netty-socketio
EclipseJetty® - Web容器和客户端 - 支持HTTP / 2,HTTP / 1.1,HTTP / 1.0,websocket,servlet等
eclipse/jetty.project
java
Python (Tornado, pywebsocket)
服务端实现
开源框架选型
服务器 Push 技术
web服务器端推送技术简介 - 推酷
Web 实时推送技术的总结 - 推酷
PUSH 云服务和解决方案 - 推酷
web前端的实时化-上海 HTML5 峰会笔记整理与总结
Jack肖解读 Web 实时化(iWeb峰会 PPT内容) - 推酷
参考