服务端推送技术
来源:互联网 发布:充值系统源码php 编辑:程序博客网 时间:2024/05/29 02:37
实现服务端推送的主要技术有:Comet,WebSocket、SSE(Server Send Events)、Bayeux protocol。
Comet技术细分
- 隐藏的iframe streaming,依赖浏览器行为,(可能导致浏览器一直显示加载中,用户体验差)
- XHR streaming,依赖浏览器行为
- XHR long polling(同源限制,不能访问其他站点)
- script tag long polling,可以跨站,实现复杂
SSE是单向的,而WebSocket是双向的。
Bayeux protocol基于Comet-mechanism,支持streaming和long polling
基于Bayeux protocol的实现有CometD、Faye.
WebSocket的握手基于upgrade HTTP连接
Jetty8+,Nginx支持WebSocket,另外一些技术有SockJs, Socket.io等(都有客户端和服务端实现)。
实现服务端推送系统时,需要考虑的问题有:并发连接、移动客户端的网络不稳定问题等。
并发连接的处理
- 高并发服务器,如Nginx,Jetty, Nodejs
- 集群部署时,注意client-server连接映射的维护,后端需要将消息推送到client连接的服务器。
针对移动客户端的网络不稳定问题,可能需要客户端心跳。不论什么客户端,为了应对NAT,client可能需要心跳。
另外,通过消息中间价系统如activemq、rabbitmq结合STOMP协议(可能基于websocket)、amqp协议(例如amqp.js, node-amqp)等可以实现pub/sub。
使用Adobe Flash 和后端简历 TCP连接,在Javascript的控制下进行双向通信。需要注意的是防火墙的问题。
SPDY的服务器启动流特性,也可以用于消息推送。
对于IOS、android等手机客户端可以考虑使用XMPP、ampq协议等。
参考资料
http://www.slideshare.net/PeterREgli/comet-websockets-html5
http://en.wikipedia.org/wiki/Push_technology
- 服务端推送技术
- PHP服务端推送技术Long Polling
- PHP服务端推送技术Long Polling
- PHP服务端推送技术Long Polling
- PHP服务端推送技术Long Polling
- PHP服务端推送技术Long Polling
- 收集一些Java服务端推送技术实例
- 服务端消息推送技术 comet4j开发指南
- 使用 HTTP/2 服务端推送技术加速 Node.js 应用
- 15-SpringBoot——Spring MVC基础-服务端推送技术
- blazeds服务端推送数据
- IOS 推送 + java 服务端
- IOS 推送服务端代码
- pushlet服务端推送
- 5 服务端推送
- 做HTML5服务端推送
- 服务端极光推送
- 极光推送java服务端
- KMP算法思路
- [Kinect]Kinect与Unity结合开发
- 根据metalink脚本学习undo(二)
- 关于Hashtable与Dictionary性能的讨论
- ios 把view生成image, 保持清晰度
- 服务端推送技术
- PHP 数组导出(extract函数)
- 可在 html5 游戏中使用的 js 工具库
- 第十六章 16.1.6节练习
- numpy教程:数组操作
- 数据结构:约瑟夫环问题
- Java实现二叉排序树
- 串口通信原理
- 单片机小白学步系列(七) 准备实验板——萝卜青菜,各有所爱