其实有很多种方式实现服务器推送,它们各有各的优缺点:

1.传统轮询:此方法是利用 HTML 里面 meta 标签的刷新功能,在一定时间间隔后进行页面的转载,以此循环往复。它的最大缺点就是页面刷性给人带来的体验很差,而且服务器的压力也会比较大。
2.Ajax 轮询:异步响应机制,即通过不间断的客户端 Ajax 请求,去发现服务端的变化。这种方式由于是客户端主动连接的,所以会有一定程度的延时,并且服务器的压力也不小。
3.长连接:这也是我们之前所介绍的一种方式。由于它是利用客户端的现有连接实现服务器主动向客户端推送信息,所以延时的情况很少,并且由于服务端的可操控性使得服务器的压力也迅速减小。其实这种技术还有其他的实现方式,通过 Iframe,在页面上嵌入一个隐藏帧(Iframe),将其“src”属性指向一个长连接的请求,这样一来,服务端就能够源源不断的向客户端发送数据。这种方式的不足就在于:它会造成浏览器的进度栏一直显示没有加载完成,当然我们可以通过 Google 的一个称为“htmlfile”的 ActiveX 控件解决,但是毕竟他需要安装 ActiveX 控件,对于终端用户也是不合适的。
4.套接字:可以利用 Flash 的 XMLSocket 类或者 Java 的 Applet 来建立 Socket 连接,实现全双工的服务器推送,然后通过 Flash 或者 Applet 与 JavaScript 通信的接口来实现最终的数据推送。但是这种方式需要 Flash 或者 JVM 的支持,同样不太合适于终端用户。
5.HTML5 的 WebSocket:这种方式其实与套接字一样,但是这里需要单独强调一下:它是不需要用户而外安装任何插件的。HTML5 提供了一个 WebSocket 的 JavaScript 接口,可以直接与服务端建立 Socket 连接,实现全双工通信,这种方式的服务器推送就是完全意义上的服务器推送了,没有半点模拟的成分,只是现阶段支持 HTML5 的浏览器并不多,而且一般老版本的各种浏览器基本都不支持。不过 HTML5 是一套非常好的标准,在将来,当 HTML5 流行起来以后将是我们实现服务器推送技术的不二选择。

java服务器推送消息技术相关推荐

  1. 服务器推送消息方法总结及实现(java)

    服务器推送消息方法总结及实现(java) 最近在进行web开发时,有用到服务端推送消息这个功能,相信大家在平常开发时,也经常会有这种需求.本文对常用的几种服务器推送消息方法进行整理和总结,并实现使用流 ...

  2. java推送技术_java网络编程 - java服务器推送技术系列方案实战

    前言 服务器推送技术(又名Comet)是建立在ARP基础之上的一种非常实用的技术,它广泛应用于Web端,手机APP应用端等.具体很多场景都需要此技术的支撑,包括扫码登录.扫码支付.网页支付.端到端消息 ...

  3. html5服务器推送消息的各种解决办法,WEB服务器推送消息的各种解决办法

    前言:在各种BS架构的应用程序中,往往都希望服务端能够主动地向客户端推送各种消息,以达到类似于邮件.消息.待办事项等通知.而BS架构本身存在的问题就是,服务器一直采用的是一问一答的机制.这就意味着如果 ...

  4. HTTP Websocket 服务器推送消息

    文章目录 HTTP HTTP请求过程 1. 无状态 2. 基于TCP协议 心跳包 3. 长.短连接 4. 单向请求 传统服务器推送技术 短轮询 polling 同源限制 跨域资源共享 长轮询 long ...

  5. worker服务器推送消息,浏览器中serviceWorker用法

    朋也的博客 » 首页 » 文章 浏览器中serviceWorker用法 作者:朋也 日期:2019-05-27 类别:javascript学习笔记 版权声明:自由转载-非商用-非衍生-保持署名(创意共 ...

  6. JAVA程序推送消息到企业微信

    关于消息推送,相信大家都或多或少的接触过. 今日小胡在这里给大家分享下关于如何企业微信应用如何将消息推送到企业微信. 官方开发文档链接如下企业微信开发文档 首先我们要知道的是,企业微信应用推送消息,只 ...

  7. asp服务器推送消息,asp.net实时向客户端推送消息(SignalRWeb)

    [实例简介]ASP.net中服务器端向客户端推送消息,多用于在线聊天 [实例截图] [核心代码] using System; using System.Collections.Generic; usi ...

  8. java服务器推送浏览器_前端如何让服务器主动向浏览器推送数据

    前言 前面我们已经聊了ajax,它的特点是浏览器必须先发起请求,服务器才能给出对应的响应,想一想能不能让服务器主动向浏览器推送数据呢?那么这篇文章我们来聊一聊服务器推送功能. 轮询 假设你现在需要去做 ...

  9. java websocket修改为同步_服务端向客户端推送消息技术之websocket的介绍

    websocket的介绍 在讲解WebSocket前,我们先来看看下面这种场景,在HTTP协议下,怎么实现. 需求: 在网站中,要实现简单的聊天,这种情况怎么实现呢?如下图: ​ 当发送私信的时候,如 ...

最新文章

  1. RabbitMQ学习总结(6)——消息的路由分发机制详解
  2. C 盘FAT32变为 RAW 格式
  3. java 及时通讯弹幕技术 视频播放 websocket SSM 集成代码生成器 源码
  4. 【问链-Eos公开课】第5课 组建单机多节点EOS网络
  5. 【学术相关】一院士给博士生的一封信:每天工作12小时,这仅是一个下限!...
  6. ubuntu mysql修改字符集后不能启动mysql_解决ubuntu下修改my.cnf设置字符集导致mysql无法启动...
  7. Spring 4.3 的新功能和增强
  8. Android 4 开发环境配置中的诸多陷阱
  9. 前端学到什么水平就可以去找工作呢?
  10. Adaboost算法的学习笔记~
  11. 【c++ templates读书笔记】【4】技巧性基础知识
  12. 完全免费!6个不可错过的图片、视频等资源网站分享,个个都是精品!
  13. 《HTML5从入门到精通》中文学习教程
  14. jenkins插件镜像源
  15. 远程服务器网刻系统,PXE网克工具免费的全自动PXE网刻工具
  16. 键盘怎么一按f1就出计算机,电脑每次开机都要按F1键,且开机后都会弹出一个打开方式的窗口,请问该怎么处理?...
  17. 行走在数据库上的行癫(四)
  18. 台式计算机怎么进行打印机共享,台式机共享打印机的方法
  19. 为什么在浏览器中不能使用搜狗输入法,而其他地方是可以的
  20. 关于「作者饱醉豚违反简书社区规则」事件的后续处理公告

热门文章

  1. ElasticSearch学习日志
  2. dz搬家 config_global.php 不可写入,DZ论坛搬家后出现问题解决方法大全
  3. 字母三角形c语言字母不重复,c语言实践 打印字母三角形
  4. Rennen dein Hund davon das den.
  5. 利用51单片机制作一个秒表的详细过程
  6. unity第三天:物体的碰撞器与触发器
  7. 倾斜摄影在道路测绘设计中的应用
  8. Video resolution: 720 vs 704 区别
  9. MIMO/SIMO/SISO
  10. NRF24L01之数据手册要点解析和经验分享