springboot实现简单的消息对话的示例代码

 更新时间:2023年09月03日 15:04:45   作者:曾几何时…  
本文主要介绍了springboot实现简单的消息对话的示例代码,可以使用WebSocket技术,WebSocket是一种在客户端和服务器之间提供实时双向通信的协议,具有一定的参考价值,感兴趣的可以了解一下

一、前言

要在Spring Boot项目中实现消息对话,你可以使用WebSocket技术。WebSocket是一种在客户端和服务器之间提供实时双向通信的协议。

二、实战步骤

步骤 1:

添加依赖 首先,在您的Spring Boot项目的pom.xml文件中添加以下依赖:

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

步骤 2:

创建WebSocket配置类 接下来,创建一个配置类来配置WebSocket相关的组件。例如,创建一个名为WebSocketConfig的类,并添加以下代码:

@Configuration
@EnableWebSocket
public class WebSocketConfig implements WebSocketConfigurer {
    @Override
    public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
        registry.addHandler(chatWebSocketHandler(), "/chat").setAllowedOrigins("*");
    }
    @Bean
    public WebSocketHandler chatWebSocketHandler() {
        return new ChatWebSocketHandler();
    }
}

步骤 3:

创建WebSocket处理程序类 然后,创建一个WebSocket处理程序类来处理WebSocket连接和消息。例如,创建一个名为ChatWebSocketHandler的类,并添加以下代码:

@Component
public class ChatWebSocketHandler extends TextWebSocketHandler {
    private static final List<WebSocketSession> sessions = new CopyOnWriteArrayList<>();
    @Override
    public void afterConnectionEstablished(WebSocketSession session) throws Exception {
        sessions.add(session);
    }
    @Override
    protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {
        for (WebSocketSession client : sessions) {
            if (client.isOpen()) {
                client.sendMessage(message);
            }
        }
    }
    @Override
    public void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception {
        sessions.remove(session);
    }
}

步骤 4:

创建前端页面 接下来,您需要编写一个前端页面来与WebSocket进行通信。您可以使用JavaScript和HTML来实现此功能。以下是一个简单的示例:

<!DOCTYPE html>
<html>
<head>
    <title>Chat</title>
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    <script>
        var socket = new WebSocket("ws://localhost:8080/chat");
        socket.onopen = function() {
            console.log("Connected to WebSocket");
        };
        socket.onmessage = function(event) {
            var message = event.data;
            console.log("Received message: " + message);
            // 在页面上显示收到的消息
            $("#messages").append("<p>" + message + "</p>");
        };
        function sendMessage() {
            var message = $("#message").val();
            socket.send(message);
        }
    </script>
</head>
<body>
    <input type="text" id="message" placeholder="Enter a message">
    <button onclick="sendMessage()">Send</button>
    <div id="messages"></div>
</body>
</html>

这是一个简单的聊天界面,用户可以在输入框中输入消息,并通过点击“发送”按钮将其发送给服务器。服务器将收到的消息广播给所有连接的客户端。

到此这篇关于springboot实现简单的消息对话的示例代码的文章就介绍到这了,更多相关springboot 消息对话内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 浅谈Java日志框架slf4j作用及其实现原理

    浅谈Java日志框架slf4j作用及其实现原理

    日志记录是应用程序运行中必不可少的一部分。这篇文章主要介绍了浅谈Java日志框架slf4j作用及其实现原理,SLF4J是一个日志框架抽象层,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03
  • 使用Sentinel自定义返回和实现区分来源方式

    使用Sentinel自定义返回和实现区分来源方式

    这篇文章主要介绍了使用Sentinel自定义返回和实现区分来源方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • Java实现异步执行的8种方式总结

    Java实现异步执行的8种方式总结

    这篇文章主要给大家介绍了关于Java实现异步执行的8种方式,异步编程不会阻塞程序的执行,它将耗时的操作提交给后台线程或其他执行环境,并立即返回,使得程序可以继续执行其他任务,需要的朋友可以参考下
    2023-09-09
  • java使用mybatis调用存储过程返回一个游标结果集方式

    java使用mybatis调用存储过程返回一个游标结果集方式

    这篇文章主要介绍了java使用mybatis调用存储过程返回一个游标结果集方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • SpringBoot引入SPEL模板字符串替换的两种方式

    SpringBoot引入SPEL模板字符串替换的两种方式

    在 Spring Boot 中,我们可以使用字符串替换工具类来实现这些功能,本文主要介绍了SpringBoot引入SPEL模板字符串替换的两种方式,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • MyBatis映射文件中的动态SQL实例详解

    MyBatis映射文件中的动态SQL实例详解

    在本文中,我们深入探讨了动态SQL的各种标签,包括<if>、<choose>、<trim>、<foreach>等,通过实际的例子演示了它们的用法,感兴趣的朋友一起揭开动态SQL的神秘面纱,带你领略它的魅力
    2024-01-01
  • 浅谈Java中类的实例化步骤

    浅谈Java中类的实例化步骤

    今天小编就为大家分享一篇关于浅谈Java中类的实例化步骤,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • springboot+feign+Hystrix整合(亲测有效)

    springboot+feign+Hystrix整合(亲测有效)

    本文主要介绍了springboot+feign+Hystrix整合,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-11-11
  • Mybatis-plus对单表操作的封装实现

    Mybatis-plus对单表操作的封装实现

    本文详细介绍了MyBatis-Plus单表操作,包括自定义SQL、逻辑删除、乐观锁、全局拦截器和代码生成器等,具有一定的参考价值,感兴趣的可以了解一下
    2024-12-12
  • Java实现读取SFTP服务器指定目录文件的方法

    Java实现读取SFTP服务器指定目录文件的方法

    SFTP是一种在安全通道上传输文件的协议,它是基于SSH(Secure Shell)协议的扩展,用于在客户端和服务器之间进行加密的文件传输,这篇文章主要介绍了Java实现读取SFTP服务器指定目录文件,感兴趣的朋友跟随小编一起看看吧
    2023-08-08

最新评论