websocket入门教程( 二 )

【步骤四】: 导入websocket依赖坐标在pom.xml文件中添加websocket依赖
org.springframework.boot spring-boot-starter-websocketwebsocket入门教程 。小编来告诉你更多相关信息 。
websocket入门教程
【步骤五】: 定义WebSocket服务端组件在com.zbbmeta.websocket包下创建WebSocketServer服务组件类
package com.zbbmeta.websocket;import org.springframework.stereotype.Component;import javax.websocket.OnClose;import javax.websocket.OnMessage;import javax.websocket.OnOpen;import javax.websocket.Session;import javax.websocket.server.PathParam;import javax.websocket.server.ServerEndpoint;import java.util.Collection;import java.util.HashMap;import java.util.Map;/** * @author springboot葵花宝典 * @description: TODO */@Component@ServerEndpoint(\"/ws/{sid}\")public class WebSocketServer {//存放会话对象private static Map sessionMap = new HashMap();/*** 连接建立成功调用的方法*/@OnOpenpublic void onOpen(Session session, @PathParam(\"sid\") String sid) {System.out.println(\"客户端:\" + sid + \"建立连接\");sessionMap.put(sid, session);}/*** 收到客户端消息后调用的方法** @param message 客户端发送过来的消息*/@OnMessagepublic void onMessage(String message, @PathParam(\"sid\") String sid) {System.out.println(\"收到来自客户端:\" + sid + \"的信息:\" + message);}/*** 连接关闭调用的方法** @param sid*/@OnClosepublic void onClose(@PathParam(\"sid\") String sid) {System.out.println(\"连接断开:\" + sid);sessionMap.remove(sid);}/*** 群发** @param message*/public void sendToAllClient(String message) {Collection sessions = sessionMap.values();for (Session session : sessions) {try {//服务器向客户端发送消息session.getBasicRemote().sendText(message);} catch (Exception e) {e.printStackTrace();}}}}【步骤六】: 定义配置类 , 注册WebSocket的服务端组件在com.zbbmeta.config包下,创建WebSocketConfiguration配置类
package com.zbbmeta.config;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.web.socket.server.standard.ServerEndpointExporter;/** * @author* @description: TODO */@Configurationpublic class WebSocketConfiguration {@Beanpublic ServerEndpointExporter serverEndpointExporter() {return new ServerEndpointExporter();}}【步骤七】: 定义定时任务类,定时向所有客户端推送数据在com.zbbmeta.task包下 , 创建WebSocketTask类,使用Spring-Task进行定时发送
package com.zbbmeta.task;import com.zbbmeta.websocket.WebSocketServer;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.scheduling.annotation.Scheduled;import org.springframework.stereotype.Component;import java.time.LocalDateTime;import java.time.format.DateTimeFormatter;/** * @author springboot葵花宝典 * @description: TODO */@Componentpublic class WebSocketTask {@Autowiredprivate WebSocketServer webSocketServer;/*** 通过WebSocket每隔5秒向客户端发送消息*/@Scheduled(cron = \"0/5 * * * * ?\")public void sendMessageToClient() {webSocketServer.sendToAllClient(\"这是来自服务端的消息:\" + DateTimeFormatter.ofPattern(\"HH:mm:ss\").format(LocalDateTime.now()));}}websocket入门教程 。小编来告诉你更多相关信息 。
websocket入门教程
2.3. 功能测试启动服务,浏览器,打开websocket.html页面浏览器结果

websocket入门教程

文章插图
上面为您介绍的websocket入门教程的电脑IT小方法 , 供您全面了解参考!