【SpringBoot】WebSocket 服务器发送事件

前言:

必需学会SpringBoot基础知识

简介:

Takes an opinionated view of building production-ready Spring applications. Spring Boot favors convention over configuration and is designed to get you up and running as quickly as possible.

工具:

JDK8

apache-maven-3.5.2

IntelliJ IDEA 2018.1.3 x64

WebSocket 介绍

WebSocket 协议本质上是一个基于 TCP 的协议。

为了建立一个 WebSocket 连接,客户端浏览器首先要向服务器发起一个 HTTP 请求,这个请求和通常的 HTTP 请求不同,包含了一些附加头信息,其中附加头信息"Upgrade: WebSocket"表明这是一个申请协议升级的 HTTP 请求,服务器端解析这些附加的头信息然后产生应答信息返回给客户端,客户端和服务器端的 WebSocket 连接就建立起来了,双方就可以通过这个连接通道自由的传递信息,并且这个连接会持续存在直到客户端或者服务器端的某一方主动的关闭连接。

详细可以参考: http://www.runoob.com/html/html5-websocket.html

Java与webSocket交互

pom.xml 文件

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>

1、使用@ServerEndpoint创立websocket endpoint

  首先要注入ServerEndpointExporter,这个bean会自动注册使用了@ServerEndpoint注解声明的Websocket endpoint。要注意,如果使用独立的servlet容器,而不是直接使用springboot的内置容器,就不要注入ServerEndpointExporter,因为它将由容器自己提供和管理。

package com.lwc.config;

import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;
import org.springframework.web.socket.server.standard.ServerEndpointExporter;

/**
 * @author eddie.lee
 * @Package com.lwc.config
 * @ClassName WebSocketConfig
 * @description
 * @date created in 2018-05-17 10:31
 * @modified by
 */
@Component
public class WebSocketConfig {

    @Bean
    public ServerEndpointExporter serverEndpointExporter() {
        return new ServerEndpointExporter();
    }

}

原文地址:https://www.cnblogs.com/EddieBlog/p/9050828.html

时间: 2024-11-04 12:48:29

【SpringBoot】WebSocket 服务器发送事件的相关文章

SSE:服务器发送事件,使用长链接进行通讯

概述 传统的网页都是浏览器向服务器“查询”数据,但是很多场合,最有效的方式是服务器向浏览器“发送”数据.比如,每当收到新的电子邮件,服务器就向浏览器发送一个“通知”,这要比浏览器按时向服务器查询(polling)更有效率. 服务器发送事件(Server-Sent Events,简称SSE)就是为了解决这个问题,而提出的一种新API,部署在EventSource对象上.目前,除了IE,其他主流浏览器都支持. 简单说,所谓SSE,就是浏览器向服务器发送一个HTTP请求,然后服务器不断单向地向浏览器推

HTML5支持服务器发送事件(Server-Sent Events)-单向消息传递数据推送(C#示例)

传统的WEB应用程序通信时的简单时序图: 现在Web App中,大都有Ajax,是这样子: HTML5有一个Server-Sent Events(SSE)功能,允许服务端推送数据到客户端.(通常叫数据推送).基于数据推送是这样的,当数据源有新数据,它马上发送到客户端,不需要等待客户端请求.这些新数据可能是最新闻,最新股票行情,来自朋友的聊天信息,天气预报等. 数据拉与推的功能是一样的,用户拿到新数据.但数据推送有一些优势. 你可能听说过Comet, Ajax推送, 反向Ajax, HTTP流,W

【HTML5】Server-Sent服务器发送事件

Server-Sent 事件 - 单向消息传递 Server-Sent 事件指的是网页自动获取来自服务器的更新. 以前也可能做到这一点,前提是网页不得不询问是否有可用的更新.通过服务器发送事件,更新能够自动到达. <!DOCTYPE html> <html> <body> <h1>获得服务器更新</h1> <div id="result"></div> <script> if(typeof(

HTML 5 服务器发送事件 java实例

页面代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>HTML 5 服务器发送事件</title> </head> <body> <h1>获得服务器更新</h1> <div id="result"></div> <script> if(

HTML5服务器发送事件(Server-Send Events)

HTML5服务器发送事件是允许获得来自服务器的更新. server-sent事件-单向传递消息,表示网页自动获取来自服务器的更新. 其中有一个重要的对象,eventsource对象是用来接收服务器发送事件的通知. 实例: <!DOCTYPE html><html><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> &l

HTML 5 服务器发送事件、Input 类型、表单元素、表单属性

HTML5 服务器发送事件(server-sent event)允许网页获得来自服务器的更新. Server-Sent 事件 - 单向消息传递 Server-Sent 事件指的是网页自动获取来自服务器的更新. 以前也可能做到这一点,前提是网页不得不询问是否有可用的更新.通过服务器发送事件,更新能够自动到达. 例子:Facebook/Twitter 更新.估价更新.新的博文.赛事结果等. 浏览器支持 所有主流浏览器均支持服务器发送事件,除了 Internet Explorer. 接收 Server

HTML5: HTML5 服务器发送事件(Server-Sent Events)

ylbtech-HTML5: HTML5 服务器发送事件(Server-Sent Events) 1.返回顶部 1. HTML5 服务器发送事件(Server-Sent Events) HTML5 服务器发送事件(server-sent event)允许网页获得来自服务器的更新. Server-Sent 事件 - 单向消息传递 Server-Sent 事件指的是网页自动获取来自服务器的更新. 以前也可能做到这一点,前提是网页不得不询问是否有可用的更新.通过服务器发送事件,更新能够自动到达. 例子

HTML 5 服务器发送事件

HTML5 服务器发送事件(server-sent event)允许网页获得来自服务器的更新. 浏览器支持 所有主流浏览器均支持服务器发送事件,除了 Internet Explorer. 服务器端代码实例 为了让上面的例子可以运行,您还需要能够发送数据更新的服务器(比如 PHP ). 服务器端事件流的语法是非常简单的.把 "Content-Type" 报头设置为 "text/event-stream".现在,您可以开始发送事件流了 <?php header('

Javascript Ajax总结——其他跨域技术之服务器发送事件SSE

SSE(server-Sent Events,服务器发送事件)是围绕只读Comet交互推出的API或者模式. SSE API创建到服务器的单向连接,服务器通过这个连接可以发送任意数量的数据.服务器响应的MIME类型必须是text/event-stream,是浏览器中的JavascriptAPI能解析输出的格式.SSE支持短轮询.长轮询和HTTP流,能在断开连接时自动确定何时重新连接. 支持SSE的浏览器:Firefox6+.Safari5+.Opera11+.Chrome.iOS4+版Safar