当前位置: 首页 > news >正文

继承接口实现websocke,实现任意路径链接

1:继承接口实现websocket(这样的写法,任何的路径都可以连接过来,如果使用@ServerEndpoint这样的方式的话,就是现在匹配的路径才可)

package com.demo.websocket;import org.java_websocket.WebSocket;
import org.java_websocket.handshake.ClientHandshake;
import org.java_websocket.server.WebSocketServer;
import org.springframework.stereotype.Component;import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import java.io.IOException;
import java.net.BindException;
import java.net.InetSocketAddress;@Component
public class CustomWebSocketServer extends WebSocketServer {private static int port = 7788;public CustomWebSocketServer() {super(new InetSocketAddress(port));super.start();System.out.println("WebSocket 服务已启动,端口:" + port);}@PreDestroypublic void destroy() throws IOException, InterruptedException {super.stop();System.out.println("WebSocket 服务已关闭");}@Overridepublic void onOpen(WebSocket conn, ClientHandshake handshake) {System.out.println("客户端已连接");}@Overridepublic void onClose(WebSocket conn, int code, String reason, boolean remote) {System.out.println("客户端已断开");}@Overridepublic void onMessage(WebSocket conn, String message) {System.out.println("收到消息: " + message);try {Thread.sleep(2000);conn.send("hi,客户端"); // 回声测试} catch (InterruptedException e) {e.printStackTrace();}}@Overridepublic void onError(WebSocket conn, Exception ex) {if (ex instanceof BindException) {System.err.println("端口占用,请检查配置");} else {ex.printStackTrace();}}@Overridepublic void onStart() {System.out.println("WebSocket 服务初始化完成");}}

2:pom.xml配置

    <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.java-websocket</groupId><artifactId>Java-WebSocket</artifactId><version>1.5.1</version> </dependency></dependencies>
http://www.lryc.cn/news/600184.html

相关文章:

  • 从0开始学习R语言--Day57--SCAD模型
  • Spring Boot2 静态资源、Rest映射、请求映射源码分析
  • Sklearn 机器学习 数值指标 均方误差MSE
  • 黑马点评常见面试题
  • 通过Deepseek找工作
  • RocketMQ学习系列之——客户端消息确认机制
  • 【AI论文】Franca:用于可扩展视觉表示学习的嵌套套娃聚类
  • 第七章 愿景11 琦琦复盘测试
  • Yolo底层原理学习(V1~V3)(第一篇)
  • Java研学-RabbitMQ(二)
  • C语言————原码 补码 反码 (超绝详细解释)
  • JAVA_FourTEEN_常见算法
  • 笔试——Day18
  • LlamaIndex 和 Elasticsearch Rerankers:无与伦比的简洁
  • Mysql实现高可用(主从、集群)
  • 【运维】ubuntu 安装图形化界面
  • iOS苹果和Android安卓测试APP应用程序的区别差异
  • 地铁逃生
  • 浅谈生成式AI语言模型的现状与展望
  • gig-gitignore工具实战开发(三):gig add基础实现
  • 服务端处于 TIME_WAIT 状态的 TCP 连接,收到相同四元组的 SYN 后会发生什么?详解
  • 引用文章链接
  • VSCode——python选择解释器消失的解决办法
  • pytorch学习笔记-使用DataLoader加载固有Datasets(CIFAR10),使用tensorboard进行可视化
  • 前端-html+CSS基础到高级(一)html基础
  • SEO实战派白杨SEO:SEO中说的框计算、知心搜索(知识图谱)是什么?有什么用处?
  • Microsoft SharePointServer 远程命令执行漏洞复现(CVE-2025-53770)
  • 学习笔记《区块链技术与应用》第二天 共识机制
  • Vue2上
  • 机器学习(九):KNN算法全解析与项目实践