springboot實現(xiàn)簡單的消息對話的示例代碼
一、前言
要在Spring Boot項目中實現(xiàn)消息對話,你可以使用WebSocket技術(shù)。WebSocket是一種在客戶端和服務(wù)器之間提供實時雙向通信的協(xié)議。
二、實戰(zhàn)步驟
步驟 1:
添加依賴 首先,在您的Spring Boot項目的pom.xml文件中添加以下依賴:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>步驟 2:
創(chuàng)建WebSocket配置類 接下來,創(chuàng)建一個配置類來配置WebSocket相關(guān)的組件。例如,創(chuàng)建一個名為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:
創(chuàng)建WebSocket處理程序類 然后,創(chuàng)建一個WebSocket處理程序類來處理WebSocket連接和消息。例如,創(chuàng)建一個名為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:
創(chuàng)建前端頁面 接下來,您需要編寫一個前端頁面來與WebSocket進行通信。您可以使用JavaScript和HTML來實現(xiàn)此功能。以下是一個簡單的示例:
<!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>這是一個簡單的聊天界面,用戶可以在輸入框中輸入消息,并通過點擊“發(fā)送”按鈕將其發(fā)送給服務(wù)器。服務(wù)器將收到的消息廣播給所有連接的客戶端。
到此這篇關(guān)于springboot實現(xiàn)簡單的消息對話的示例代碼的文章就介紹到這了,更多相關(guān)springboot 消息對話內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用Sentinel自定義返回和實現(xiàn)區(qū)分來源方式
這篇文章主要介紹了使用Sentinel自定義返回和實現(xiàn)區(qū)分來源方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-04-04
Java實現(xiàn)異步執(zhí)行的8種方式總結(jié)
這篇文章主要給大家介紹了關(guān)于Java實現(xiàn)異步執(zhí)行的8種方式,異步編程不會阻塞程序的執(zhí)行,它將耗時的操作提交給后臺線程或其他執(zhí)行環(huán)境,并立即返回,使得程序可以繼續(xù)執(zhí)行其他任務(wù),需要的朋友可以參考下2023-09-09
java使用mybatis調(diào)用存儲過程返回一個游標結(jié)果集方式
這篇文章主要介紹了java使用mybatis調(diào)用存儲過程返回一個游標結(jié)果集方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01
springboot+feign+Hystrix整合(親測有效)
本文主要介紹了springboot+feign+Hystrix整合,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-11-11
Java實現(xiàn)讀取SFTP服務(wù)器指定目錄文件的方法
SFTP是一種在安全通道上傳輸文件的協(xié)議,它是基于SSH(Secure Shell)協(xié)議的擴展,用于在客戶端和服務(wù)器之間進行加密的文件傳輸,這篇文章主要介紹了Java實現(xiàn)讀取SFTP服務(wù)器指定目錄文件,感興趣的朋友跟隨小編一起看看吧2023-08-08

