推送技术相关请参加WIKI: https://zh.wikipedia.org/wiki/%E6%8E%A8%E9%80%81%E6%8A%80%E6%9C%AF

场景:

监控系统:后台硬件温度、电压发生变化;
即时通信系统:其它用户登录、发送信息;
即时报价系统:后台数据库内容发生变化;
即时信息系统:微博、说说实时推送

客户端驱动无法满足上述场景要求。可采用以下几种方式

Ajax轮询:异步响应机制,即通过不间断的客户端 Ajax 请求,去发现服务端的变化。这种方式由于是客户端主动连接的,所以会有一定程度的延时,并且服务器的压力也不小。

长轮询:原理是客户端发出一个http长连接请求,然后等待服务器的响应,服务器接到请求之后,并不立即发送出数据,而是hold住这个Connecton。这个处理是非阻塞的,所以服务器可以继续处理其他请求。在某个时刻,比如服务器有新数据了,服务器再主动把这个消息推送出去,即通过之前建立好的连接将数据推送给客户端。客户端收到返回。这个时候就可以处理数据,然后再次发起新的长连接。服务器压力一般,实时性很高。Servlet 3.0开始已经支持该技术。sina微博就是使用的原生Servlet 3实现的消息推送。

套接字:可以利用 Flash 的 XMLSocket 类或者 Java 的 Applet 来建立 Socket 连接,实现全双工的服务器推送,然后通过 Flash 或者Applet 与 JavaScript 通信的接口来实现最终的数据推送。但是这种方式需要 Flash 或者 JVM 的支持,同样不太合适于终端用户。

HTML5的WebSocket:这种方式其实与套接字一样,但是这里需要单独强调一下:它是不需要用户而外安装任何插件的。HTML5 提供了一个 WebSocket 的 JavaScript 接口,可以直接与服务端建立Socket 连接,实现全双工通信,这种方式的服务器推送就是完全意义上的服务器推送了,没有半点模拟的成分,只是现阶段支持 HTML5 的浏览器并不多,而且一般老版本的各种浏览器基本都不支持。不过 HTML5 是一套非常好的标准,在将来,当HTML5 流行起来以后将是我们实现服务器推送技术的不二选择。

参考文章:http://blog.csdn.net/majian_1987/article/details/8489488

转载于:https://www.cnblogs.com/guochunyi/p/5728548.html

server端推送消息机制相关推荐

  1. springboot 实现服务端推送消息

    文章目录 前言 一.关于SSE 1. 概念介绍 2. 特点分析 3. 应用场景 二.SpringBoot实现 三.前端vue调用 四.一些问题 前言 服务端推送消息我们采用SSE方式进行推送. 一.关 ...

  2. nett服务器接收消息的方法,C#(一沙框架) .net core3.1 SignalR 服务端推送消息至客户端的实现方法,用弹窗插件进行显示,非常美观实用...

    C#(一沙框架) .net core3.1 SignalR 服务端推送消息至客户端的实现方法,用弹窗插件进行显示,非常美观实用 运行效果: 1.安装Microsoft.AspNetCore.Signa ...

  3. Android端推送消息之极光推送

    推送方式 轮询 --实现方式: 周期性主动获取网络中的数据; --缺点: 费电, 费流量; SMS --实现方式: 服务器端向手机端发送短信, 手机监听短信广播, 将拦截的短信信息进行显示; --优点 ...

  4. Java 服务端推送消息有那么难吗?

    点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 转自公众号:码农小胖哥 今天项目经理交给我一个开发任务.如果有人在前台下了订单就给后台仓库管 ...

  5. 个推PC端推送消息至App

    本文以个推透传消息为例: 个推SDK下载地址:点击打开链接 开发准备见官方文档:http://docs.igetui.com/pages/viewpage.action?pageId=590077 类 ...

  6. 利用server酱推送消息和定时库:APScheduler

    转载自公众号:python_shequ 最近工作比较繁杂,经常忘事,有时候记了备忘录结果却忘记看备忘录,但是微信是每天都会看的,于是就想到写一个基于微信的提醒系统.总体思路是将待办事项记录到在线记事本 ...

  7. 安卓php推送消息机制,深入剖析Android消息机制原理

    在Android中,线程内部或者线程之间进行信息交互时经常会使用消息,这些基础的东西如果我们熟悉其内部的原理,将会使我们容易.更好地架构系统,避免一些低级的错误.在学习Android中消息机制之前,我 ...

  8. DWR实现服务器端向客户端推送消息

    2019独角兽企业重金招聘Python工程师标准>>> 1.简介 DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框 ...

  9. SpringBoot使用SSE推送消息

    序言   服务器推送技术在一些需要实时数据的开发场景会被广泛使用,要获得实时数据,前端轮询的方式明显是被摒弃的,大部分人第一时间想到的就是websocket.之前的一个项目也是用的websocket, ...

最新文章

  1. Entropy Broker 2.0 发布,加密安全随机数
  2. Markdown语法入门
  3. 【APICloud系列|3】开发APP对UI的一般性要求
  4. derby数据库操作比较难理解的错误及解决方法大全
  5. 关于操作系统中英文切换的.po和.mo介绍
  6. lstm中look_back的大小选择_LSTM 扫盲:长短期记忆网络解读及其 PyTorch 应用实现
  7. 因广告业务低迷美国第三大广播公司城堡申请破产
  8. NoSQL之MongoDB安装
  9. Sudoku Solver
  10. Oracle监控指标
  11. ASA K8升级到K9
  12. 最长公共子串(动态规划)
  13. 宽带远端服务器无响应什么意思,宽带远程服务器无响应
  14. java合并果子_经典题-提高组2004年 合并果子
  15. 学会计学java,Java 属于以下哪种语言?_学小易找答案
  16. android自定义壁纸制作,Android 自定义View实现画背景和前景(ViewGroup篇)
  17. You are currently rebasing branch ‘csindex/feature/index_info‘ on ‘d2ef4210a3‘.
  18. matlabff2函数_罚函数法MATLAB程序.doc
  19. 牛客网输入输出练习c++ 个人版题解
  20. Unity游戏开发客户端面经——热更新(初级)

热门文章

  1. 旧版Requests库
  2. html5app大赛,Anyoffice -HTML5大赛 悦心(基于H5开发安卓音乐app)-项目总结
  3. html怎么上传qq空间,qq空间怎么上传照片
  4. python编程入门单例_Python单例模式实例详解
  5. android 音频合成_【Android工具】用手机测量噪声的工具软件,噪声仪分贝计,量化噪声声音工具...
  6. AppScan api登录接口 postman_如何通过Postman调用EDI系统的API?
  7. matlab 英语怎么读,MATLAB SPTooL
  8. php键盘输入函数,php的常用输入语句以及常用函数
  9. oracle dbstart,dbstart: 未找到命令
  10. voxelnet_ue4商城资源Voxel Sandbox Toolkit体素沙盒工具箱