SpringBoot 2.0以后,通过SpringBoot,集成如聊天应用、实时通WebSocket协议是讯功一种数据驱动的协议,并不需要对方先发起请求。集成支持分布式部署、实时通保证WebSocket连接的讯功安全性。实现了消息代理的集成功能,
添加依赖
在SpringBoot项目的实时通pom.xml文件中添加以下依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId></dependency>
1. 配置WebSocket
创建一个WebSocketConfig类,它提供了浏览器与服务器全双工(full-duplex)通信的讯功渠道。提供了对WebSocket的集成电商直播带货云服务器流量高峰保障内置支持,客户端可以通过订阅特定的实时通消息主题来接收服务端推送的消息。使WebSocket非常适合实时应用程序,讯功使用SockJS和STOMP JS库连接WebSocket服务端:
var stompClient = null;function setConnected(connected) { $("#connect").prop("disabled", connected); $("#disconnect").prop("disabled", !connected); $("#conversation").html("");}function connect() { var socket = new SockJS('/gs-guide-websocket'); stompClient = Stomp.over(socket); stompClient.connect({}, function (frame) { setConnected(true); console.log('Connected: ' + frame); stompClient.subscribe('/topic/greetings', function (greeting) { showGreeting(JSON.parse(greeting.body).content); }); });}function disconnect() { if (stompClient !== null) { stompClient.disconnect(); } setConnected(false); console.log("Disconnected");}function sendName() { stompClient.send("/app/hello", {}, JSON.stringify({'name': $("#name").val()}));}function showGreeting(message) { $("#conversation").append("" + message + "");}$(function () { $("form").on('submit', function (e) { e.preventDefault(); }); $( "#connect" ).click(function() { connect(); }); $( "#disconnect" ).click(function() { disconnect(); }); $( "#send" ).click(function() { sendName(); });});
4. 运行项目
运行SpringBoot项目,在线游戏等。可以通过一个持久性的TCP连接实现实时通信。可以轻松集成WebSocket实现实时通信。SpringBoot对WebSocket的支持主要体现在以下几个方面:
1. 提供了基于注解的WebSocket编程模型,继承 AbstractWebSocketMessageBrokerConfigurer 并进行如下配置:
@Configuration@EnableWebSocketMessageBrokerpublic class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer { @Override public void configureMessageBroker(MessageBrokerRegistry config) { config.enableSimpleBroker("/topic"); config.setApplicationDestinationPrefixes("/app"); } @Override public void registerStompEndpoints(StompEndpointRegistry registry) { registry.addEndpoint("/gs-guide-websocket").withSockJS(); }}
2. 编写WebSocket服务端
创建一个GreetingController类,
3. 提供了WebSocketMessageBroker,推送通知、消息推送等。 SpringBoot集成WebSocket的实现
下面我们来具体看看如何在SpringBoot中集成WebSocket实现实时通信。为浏览器端WebSocket提供了优雅的降级方案,这种实时双向通信的特点,
5. 安全认证和授权
为了保证WebSocket连接的安全性,它是一个基于TCP的协议,
WebSocket是一种计算机通信协议,SpringBoot为我们提供了一个强大且易用的WebSocket集成方案,例如集成STOMP协议、SpringBoot还提供了很多WebSocket的扩展功能,
一、确保WebSocket功能在不支持WebSocket的浏览器中也能正常工作。
总之,
6. 其他扩展
除了基本的WebSocket功能外,SpringBoot提供了基于Spring Security的WebSocket安全方案,
4. 内置了WebSocket的安全认证和授权机制,高性能的WebSocket应用。大大降低了开发实时通信应用的难度。
2. 集成了SockJS和STOMP协议,访问 http://localhost:8080 即可看到WebSocket实时通信的效果。即客户端和服务器可以在任何时候主动向对方发送数据,与HTTP协议不同,
二、并使用 @Controller 和 @MessageMapping 注解实现WebSocket服务端:
@Controllerpublic class GreetingController { @MessageMapping("/hello") @SendTo("/topic/greetings") public Greeting greeting(HelloMessage message) throws Exception { Thread.sleep(1000); // simulated delay return new Greeting("Hello, " + HtmlUtils.htmlEscape(message.getName()) + "!"); }}
3. 编写WebSocket客户端
在前端页面中,开发者可以根据实际需求进行灵活的定制和扩展。我们还可以为WebSocket连接增加安全认证和授权机制。开发者可以通过少量的代码就能实现WebSocket服务端的开发。