Spring Boot 整合单机websocket的步骤 附github源码

下面我会详细讲解 “Spring Boot 整合单机websocket的步骤 附github源码” 的完整攻略,并提供两个示例说明。

一、整合步骤

1. 引入依赖

在pom.xml文件中添加以下依赖:

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

2. 编写 WebSocket 数据处理程序类

此类应该扩展自 Spring 的 WebSocketHandler 接口,并且要重写三个方法:
- afterConnectionEstablished(WebSocketSession session):在建立连接后调用此方法,可以向指定用户发送数据。
- handleMessage(WebSocketSession session, WebSocketMessage<?> message):WebSocketSocket 连接被打开时调用此方法。
- afterConnectionClosed(WebSocketSession session, CloseStatus closeStatus):在断开连接后调用此方法。

@Component
public class MyHandler implements WebSocketHandler {

    private final static List<WebSocketSession> sessions = new CopyOnWriteArrayList<>();

    // 当连接建立后调用此方法
    @Override
    public void afterConnectionEstablished(WebSocketSession session) throws Exception {
        sessions.add(session);
    }

    // 接收到消息后调用此方法
    @Override
    public void handleMessage(WebSocketSession session, WebSocketMessage<?> message) throws Exception {
        for (WebSocketSession s : sessions) {
            // 广播消息
            s.sendMessage(new TextMessage("广播消息: " + message.getPayload()));
        }
    }

    // 连接关闭后调用此方法
    @Override
        public void afterConnectionClosed(WebSocketSession session, CloseStatus closeStatus) throws Exception {
        sessions.remove(session);
    }
}

3. 配置 WebSocket

在 Spring Boot 应用程序的 WebSocketConfig.java 类中添加以下配置:

@Configuration
@EnableWebSocket
public class WebSocketConfig implements WebSocketConfigurer {

    @Autowired
    private MyHandler myHandler;

    @Override
    public void registerWebSocketHandlers(WebSocketHandlerRegistry webSocketHandlerRegistry) {
        webSocketHandlerRegistry.addHandler(myHandler, "/myHandler").setAllowedOrigins("*");
    }
}
  • @Configuration:标识该类为配置类。
  • @EnableWebSocket:启用 WebSocket 功能。
  • MyHandler:自定义的 WebSocket 数据处理程序。
  • "/myHandler":WebSocket 的访问路径。
  • setAllowedOrigins("*"):设置 WebSocket 的跨域访问。

4. 在Web页面中使用WebSocket

要使用 WebSocket,需要在Web页面中添加以下 JavaScript 代码:

var ws = new WebSocket("ws://localhost:8080/myHandler");

ws.onopen = function() {
    console.log("WebSocket已连接");
}

ws.onmessage = function(event) {
    console.log("接收到消息: " + event.data);
}

ws.onclose = function() {
    console.log("WebSocket已关闭");
}

document.getElementById("sendButton").addEventListener("click", function() {
    var inputText = document.getElementById("inputText").value;
    ws.send(inputText);
});

其中,ws 是一个 WebSocket 实例,其 onopenonmessageonclose 函数会在 WebSocket 连接建立、接收到消息以及连接关闭时被调用。最后一个 JavaScript 代码为检测文本框中的输入并将其发送到服务器端。

二、附加示例代码说明

示例一:简单聊天室

项目地址:https://github.com/ytwxsb/simple-chatroom

这是一个简单的 WebSocket 实例,能够实现简单的聊天室功能,可以在多个浏览器中进行群聊。具体的代码可以查看上面给出的 Github 源码。

示例二:实时推送天气信息

项目地址:https://github.com/ytwxsb/weather-websocket-demo

这个示例可以实时推送指定城市的天气信息,使用了第三方天气 API,通过 WebSocket 推送到前端页面进行展示。具体的代码可以查看上面给出的 Github 源码。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Spring Boot 整合单机websocket的步骤 附github源码 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • Pycharm Git 设置方法

    首先,在Pycharm中设置Git需要安装Git软件及在Pycharm中安装Git插件。 第一步:安装Git软件。可以到Git官网下载Git软件安装程序进行安装。 第二步:在Pycharm中安装Git插件。在Pycharm中点击File -> Settings,打开设置窗口,选择Plugins,搜索git并安装。 第三步:设置Pycharm中git路径…

    GitHub 2023年5月16日
    00
  • 用GitLab搭建自己的私有GitHub库的步骤

    以下是详细的攻略步骤: 步骤一:在GitLab上创建项目 第一步是在GitLab上创建一个新项目,依照以下步骤进行操作: 登录GitLab账号,进入页面后点击“+”号旁边的“New project”按钮。 在弹出的菜单中选择“Create blank project”。 输入项目名字、描述和可见性等基本信息。 点击“Create Project”按钮完成新项…

    GitHub 2023年5月16日
    00
  • golang实现单点登录系统(go-sso)

    下面是详细讲解 “golang实现单点登录系统(go-sso)” 的完整攻略: 概述 在现代的Web应用程序中,通常需要实现跨站点会话管理和单点登录功能,以提高用户体验并简化用户管理。通过单点登录系统,用户只需要登录一次即可访问多个Web应用程序,而无需每次都输入用户名和密码。 此时,一些Web应用程序必须识别当前用户并在跨站点网站间共享用户身份验证状态。基…

    GitHub 2023年5月16日
    00
  • git安装步骤_动力节点Java学院整理

    下面我将详细讲解“git安装步骤_动力节点Java学院整理”的完整攻略,包括两条示例说明。 1. 下载并安装Git 1.1 下载Git安装包 官方网站下载地址:https://git-scm.com/downloads 。根据你的操作系统(Windows,Mac,Linux),下载适合你的Git安装包。 1.2 安装Git Windows操作系统: 双击运行…

    GitHub 2023年5月16日
    00
  • RocketMQ源码本地搭建调试方法

    当你需要对RocketMQ这个消息中间件进行二次开发或者调试的时候,我们需要搭建RocketMQ源码环境,从而可以方便地进行代码调试以及定位问题。接下来,我会为你介绍如何在本地搭建RocketMQ源码的开发环境,并且通过两个示例来演示如何进行调试。 环境准备 在开始搭建RocketMQ源码环境之前,需要您本地已经准备好以下环境: JDK1.8及以上 Git …

    GitHub 2023年5月16日
    00
  • Python 通过爬虫实现GitHub网页的模拟登录的示例代码

    Python 通过爬虫实现GitHub网页的模拟登录的示例代码。 示例一:利用requests和beautifulsoup import requests from bs4 import BeautifulSoup # 登录页面url login_url = "https://github.com/login" # 浏览器请求头 head…

    GitHub 2023年5月16日
    00
  • SpringBoot+Dubbo+Zookeeper实现简单分布式开发的应用详解

    让我来给你讲解一下“SpringBoot+Dubbo+Zookeeper实现简单分布式开发的应用详解”的完整攻略。 简介 在分布式系统中,不同的业务模块需要部署在不同的服务器上,而这些服务器之间需要进行协调,才能保证各个模块能够协作工作。Dubbo是阿里巴巴开发的高性能RPC框架,其主要的作用就是为分布式应用提供了远程服务调用的支持。而Zookeeper则是…

    GitHub 2023年5月16日
    00
  • GitHub入门教程 手把手教你最简单的开源项目托管

    下面就详细讲解“GitHub入门教程 手把手教你最简单的开源项目托管”的完整攻略吧。 什么是GitHub? GitHub是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,所以叫GitHub。GitHub在开源世界中是一个独树一帜的存在,托管着很多知名开源项目。 注册GitHub账户 首先,我们需要注册一个GitHub账户。…

    GitHub 2023年5月16日
    00
合作推广
合作推广
分享本页
返回顶部