`

Java之消息推送之WebSocket

 
阅读更多
一、问题背景

HTTP 协议是单向协议。


二、实现服务器端向客户端进行消息推送


http://www.cnblogs.com/best/p/5695570.html


三、WebSocket机制


WebSocket 是 HTML5 一种新的协议。它实现了浏览器与服务器全双工通信,能更好的节省服务器资源和带宽并达到实时通讯,它建立在 TCP 之上,同 HTTP 一样通过 TCP 来传输数据,但是它和 HTTP 最大不同是:

WebSocket 是一种双向通信协议,在建立连接后,WebSocket 服务器和 Browser/Client Agent 都能主动的向对方发送或接收数据,就像 Socket 一样;
WebSocket 需要类似 TCP 的客户端和服务器端通过握手连接,连接成功后才能相互通信。

非 WebSocket 模式传统 HTTP 客户端与服务器的交互如下图所示:

图:传统HTTP客户端请求响应模式

而与传统HTTP通信相比,WebSocket的模式如下:

图:WebSocket通信模式

从上可以看出,在连接生效过后,Server端可以实现向Browser端主动的消息推送。一旦 WebSocket 连接建立后,后续数据都以帧序列的形式传输。在客户端断开 WebSocket 连接或 Server 端断掉连接前,不需要客户端和服务端重新发起连接请求。在海量并发及客户端与服务器交互负载流量大的情况下,极大的节省了网络带宽资源的消耗,有明显的性能优势,且客户端发送和接受消息是在同一个持久连接上发起,实时性优势明显。









-



http://www.liulichao.com/2016/05/06/java-spring-websocket-1.html




  • 大小: 9.8 KB
  • 大小: 8.5 KB
分享到:
评论

相关推荐

    Java消息推送 WebSocket通信

    WebSocket是一种在客户端和服务器之间建立长连接的协议,它允许双方进行双向通信,即服务器可以主动向客户端推送数据,而不仅仅是响应客户端的请求。在Java中实现WebSocket通信,我们可以使用Java API for WebSocket...

    JAVA整合WebSocket实现服务器消息推送项目源码

    本项目源码展示了如何使用Java进行WebSocket的整合,从而实现服务器消息推送功能。以下将详细介绍WebSocket的核心概念、Java整合WebSocket的步骤以及在实际项目中的应用。 1. WebSocket简介: WebSocket协议是HTML5...

    java-Push开源实时消息推送系统

    Java-Push开源实时消息推送系统是一种基于Java技术构建的、专为实现高效、稳定、实时的消息推送服务而设计的解决方案。在当今互联网应用中,实时消息推送已经成为提高用户体验和互动性的重要工具,尤其是在社交网络...

    Spring Boot 整合 Netty + WebSocket 实时消息推送

    在"Spring Boot 整合 Netty + WebSocket 实时消息推送"项目中,我们主要关注以下几个核心知识点: 1. **Spring Boot集成WebSocket**:Spring Boot提供了Spring WebSocket模块,可以方便地集成WebSocket功能。通过...

    webSocket 消息推送

    WebSocket是一种在客户端和服务器之间建立长连接的协议,它允许双方进行实时、双向的数据通信,极大地优化了Web应用中的消息推送。与传统的HTTP协议不同,WebSocket在建立连接后,通信双方不再需要通过频繁的HTTP...

    websocket消息实时推送

    总结来说,WebSocket消息实时推送技术通过建立持久连接,实现了高效的数据双向传输,从而在Java环境下提供了强大的实时通信能力。这个小案例展示了如何结合Java Servlet和WebSocket API,实现在用户操作后的实时反馈...

    JAVA整合WebSocket实现服务器消息推送(项目源码)

    1、项目需要,定时向所有在线用户推送一个广告或是推送一个通知之类的(比如服务器升级,请保存好手头工作之类的)。 2、相关环境 , Nginx、tomcat7、centos 6.5 3、项目框架,springMvc 4.0.6、layer

    JAVA整合WebSocket实现服务器消息推送(项目源码).zip

    JAVA整合WebSocket实现服务器消息推送(项目源码) (1)将Database文件夹中的扩展名为db_netExam_Data.MDF和db_netExam_Log.LDF的两个文件拷贝到SQL Server安装路径下的Data文件夹中。 (2)打开SQL Server 2005中的...

    webSocket 后端向前端推送消息

    在"webSocket 后端向前端推送消息"这个主题中,我们主要关注的是如何利用WebSocket实现服务器主动向浏览器推送数据的能力,这对于实时性要求高的应用场景,如股票交易、在线聊天、游戏、实时协作工具等,具有极大的...

    java消息推送

    Java消息推送技术是一种在分布式系统中实现异步通信的关键手段,尤其在移动应用开发中,它使得服务器能够向客户端实时发送信息,而无需客户端持续轮询。本文将深入探讨Java消息推送的相关知识点,并以名为"PushTalk-...

    android利用WebSocket实现消息推送

    在Android平台上,利用WebSocket实现消息推送,可以让应用程序实时接收服务器端发送的数据,例如社交应用的新消息通知、股票市场的实时更新等。 一、WebSocket简介 WebSocket协议是在HTTP的基础上建立的持久连接...

    WebSocket.rar Android java-webSocket完整案例源码,推送,即时通信,双向通信,心跳重连

    java-webSocket是免费的,集成java-webSocket开源而成的一个比较完整的demo,实现了客户端向服务端发送消息,以及接收...适用于需要双方相互主动互发消息,推送,以及客户端与客户端通信(此时服务器只做中转)等场景。

    websocket消息推送消息.zip

    总结来说,"websocket消息推送消息.zip"文件很可能包含了一个使用Java实现的WebSocket服务器端和客户端的示例,以及一个监控WebSocket连接的服务。学习和理解以上所述的WebSocket原理和Java实现细节,将有助于你掌握...

    websocket日志实时推送

    总的来说,WebSocket日志实时推送通过结合WebSocket协议的实时通信能力、Linux的`tail -f`命令对日志的实时监控,以及Java的WebSocket服务端编程,实现了高效、实时的日志推送。这种技术在监控系统、分布式环境、...

    消息推送中台websocket部分 + netty 手写 RPC

    在消息推送中台的设计中,WebSocket常被用于实现用户实时接收推送消息。通常,服务器会维护一个WebSocket连接池,当有新的消息需要推送给特定用户时,通过已建立的WebSocket连接直接将消息发送到客户端。这种方式比...

    Flex与Java的消息推送

    Flex与Java的消息推送技术主要涉及的是前端Flex应用与后端Java服务器之间的实时数据交互。在Web应用程序中,传统的HTTP协议是基于请求-响应模型的,客户端(浏览器)发起请求,服务器响应,然后连接关闭。然而,对于...

    android websocket推送

    在Android应用程序开发中,WebSocket常用于实现即时通讯,如聊天、推送通知等功能。本篇将深入探讨如何在Tomcat 7.47及以上版本中实现WebSocket推送,并介绍Android客户端的实现方式。 首先,我们来看`...

    SpringBoot WebSocket消息推送(群发和指定到个人或多人)

    本文将深入探讨如何在Spring Boot项目中实现WebSocket的消息推送,包括群发和指定到个人或多人。 首先,我们需要在Spring Boot项目中引入WebSocket的相关依赖。通常,我们会添加`spring-websocket`和`spring-...

    websocket实现长连接网页消息推送到手机

    在"WebSocket实现长连接网页消息推送到手机"这个主题中,我们将深入探讨WebSocket如何帮助开发者实现实时的网页到手机的消息推送。 1. **WebSocket简介** WebSocket协议是在HTTP的基础上发展起来的,为了解决HTTP...

    如何利用 Spring Boot 3.X 和 WebSocket 来实现消息推送功能,并实现动态开启、关闭和取消定时任务的功能?

    概要:本文介绍如何使用 Spring Boot 3.X 和 WebSocket 实现消息推送,并动态开启、关闭和取消定时任务。通过WebSocket实现实时通信,结合定时任务管理,可实现灵活的消息推送和任务控制。 使用人群:适合有Spring ...

Global site tag (gtag.js) - Google Analytics