server端推送消息机制
推送技术相关请参加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端推送消息机制相关推荐
- springboot 实现服务端推送消息
文章目录 前言 一.关于SSE 1. 概念介绍 2. 特点分析 3. 应用场景 二.SpringBoot实现 三.前端vue调用 四.一些问题 前言 服务端推送消息我们采用SSE方式进行推送. 一.关 ...
- nett服务器接收消息的方法,C#(一沙框架) .net core3.1 SignalR 服务端推送消息至客户端的实现方法,用弹窗插件进行显示,非常美观实用...
C#(一沙框架) .net core3.1 SignalR 服务端推送消息至客户端的实现方法,用弹窗插件进行显示,非常美观实用 运行效果: 1.安装Microsoft.AspNetCore.Signa ...
- Android端推送消息之极光推送
推送方式 轮询 --实现方式: 周期性主动获取网络中的数据; --缺点: 费电, 费流量; SMS --实现方式: 服务器端向手机端发送短信, 手机监听短信广播, 将拦截的短信信息进行显示; --优点 ...
- Java 服务端推送消息有那么难吗?
点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 转自公众号:码农小胖哥 今天项目经理交给我一个开发任务.如果有人在前台下了订单就给后台仓库管 ...
- 个推PC端推送消息至App
本文以个推透传消息为例: 个推SDK下载地址:点击打开链接 开发准备见官方文档:http://docs.igetui.com/pages/viewpage.action?pageId=590077 类 ...
- 利用server酱推送消息和定时库:APScheduler
转载自公众号:python_shequ 最近工作比较繁杂,经常忘事,有时候记了备忘录结果却忘记看备忘录,但是微信是每天都会看的,于是就想到写一个基于微信的提醒系统.总体思路是将待办事项记录到在线记事本 ...
- 安卓php推送消息机制,深入剖析Android消息机制原理
在Android中,线程内部或者线程之间进行信息交互时经常会使用消息,这些基础的东西如果我们熟悉其内部的原理,将会使我们容易.更好地架构系统,避免一些低级的错误.在学习Android中消息机制之前,我 ...
- DWR实现服务器端向客户端推送消息
2019独角兽企业重金招聘Python工程师标准>>> 1.简介 DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框 ...
- SpringBoot使用SSE推送消息
序言 服务器推送技术在一些需要实时数据的开发场景会被广泛使用,要获得实时数据,前端轮询的方式明显是被摒弃的,大部分人第一时间想到的就是websocket.之前的一个项目也是用的websocket, ...
最新文章
- Entropy Broker 2.0 发布,加密安全随机数
- Markdown语法入门
- 【APICloud系列|3】开发APP对UI的一般性要求
- derby数据库操作比较难理解的错误及解决方法大全
- 关于操作系统中英文切换的.po和.mo介绍
- lstm中look_back的大小选择_LSTM 扫盲:长短期记忆网络解读及其 PyTorch 应用实现
- 因广告业务低迷美国第三大广播公司城堡申请破产
- NoSQL之MongoDB安装
- Sudoku Solver
- Oracle监控指标
- ASA K8升级到K9
- 最长公共子串(动态规划)
- 宽带远端服务器无响应什么意思,宽带远程服务器无响应
- java合并果子_经典题-提高组2004年 合并果子
- 学会计学java,Java 属于以下哪种语言?_学小易找答案
- android自定义壁纸制作,Android 自定义View实现画背景和前景(ViewGroup篇)
- You are currently rebasing branch ‘csindex/feature/index_info‘ on ‘d2ef4210a3‘.
- matlabff2函数_罚函数法MATLAB程序.doc
- 牛客网输入输出练习c++ 个人版题解
- Unity游戏开发客户端面经——热更新(初级)
热门文章
- 旧版Requests库
- html5app大赛,Anyoffice -HTML5大赛 悦心(基于H5开发安卓音乐app)-项目总结
- html怎么上传qq空间,qq空间怎么上传照片
- python编程入门单例_Python单例模式实例详解
- android 音频合成_【Android工具】用手机测量噪声的工具软件,噪声仪分贝计,量化噪声声音工具...
- AppScan api登录接口 postman_如何通过Postman调用EDI系统的API?
- matlab 英语怎么读,MATLAB SPTooL
- php键盘输入函数,php的常用输入语句以及常用函数
- oracle dbstart,dbstart: 未找到命令
- voxelnet_ue4商城资源Voxel Sandbox Toolkit体素沙盒工具箱