知識庫 / Spring / Spring MVC RSS 訂閱

使用Postman測試WebSocket API

Spring MVC
HongKong
4
12:29 PM · Dec 06 ,2025

1. 概述

本文將創建一個使用 WebSocket 和 Postman 進行測試的應用程序。

2. Java WebSockets

WebSocket 是一種雙向、全雙工、持久的連接,它建立在瀏覽器和服務器之間。一旦 WebSocket 連接建立,該連接將保持開放,直到客户端或服務器決定關閉該連接。

WebSocket 協議是實現應用程序處理實時消息的一種方式。最常見的替代方案是長輪詢和服務器發送事件。每種解決方案都有其優點和缺點。

在 Spring 中使用 WebSockets 的一種方式是使用 STOMP 子協議。然而,在本文中,我們將使用原始 WebSockets,因為截至今天,Postman 中 STOMP 支持不可用

3. Postman 設置

Postman 是一款用於構建和使用 API 的 API 平台。在使用 Postman 時,我們無需為了測試目的編寫 HTTP 客户端基礎設施代碼。相反,我們創建測試套件,稱為集合,並讓 Postman 與我們的 API 交互。

4. 使用 WebSocket 的應用程序

我們將構建一個簡單的應用程序。 我們的應用程序的工作流程如下:

  • 服務器向客户端發送一條一次性消息
  • 它向客户端發送週期性消息
  • 在接收客户端的消息後,它記錄這些消息並將其發送回客户端
  • 客户端向服務器發送非週期性消息
  • 客户端接收來自服務器的消息並記錄這些消息

以下是工作流程圖:

5. Spring WebSocket

我們的服務器由兩部分組成:Spring WebSocket 事件處理程序和 Spring WebSocket 配置。 我們將在下面分別討論它們:

5.1. Spring WebSocket 配置

我們可以通過添加 @EnableWebSocket 註解來啓用 Spring 服務器對 WebSocket 的支持。

在相同的配置中,我們還將註冊實現 WebSocket 處理器的 WebSocket 端點:

@Configuration
@EnableWebSocket
public class ServerWebSocketConfig implements WebSocketConfigurer {
    
    @Override
    public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
        registry.addHandler(webSocketHandler(), "/websocket");
    }
    
    @Bean
    public WebSocketHandler webSocketHandler() {
        return new ServerWebSocketHandler();
    }
}

5.2. Spring WebSocket 處理程序

該 WebSocket 處理程序類繼承了 <em >TextWebSocketHandler</em >》。<strong >該處理程序使用 <em >handleTextMessage</em >> 回調方法接收來自客户端的消息</strong>。sendMessage> 方法用於將消息發送回客户端:`

@Override
public void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {
    String request = message.getPayload();
    logger.info("Server received: {}", request);
        
    String response = String.format("response from server to '%s'", HtmlUtils.htmlEscape(request));
    logger.info("Server sends: {}", response);
    session.sendMessage(new TextMessage(response));
}

@Scheduled方法向具有相同sendMessage方法的活躍客户端廣播週期性消息。

@Scheduled(fixedRate = 10000)
void sendPeriodicMessages() throws IOException {
    for (WebSocketSession session : sessions) {
        if (session.isOpen()) {
            String broadcast = "server periodic message " + LocalTime.now();
            logger.info("Server sends: {}", broadcast);
            session.sendMessage(new TextMessage(broadcast));
        }
    }
}

我們的測試端點將是:

ws://localhost:8080/websocket

6. 使用 Postman 進行測試

現在我們的端點已準備就緒,我們可以使用 Postman 進行測試。 要測試 WebSocket,必須安裝 v8.5.0 或更高版本

在開始使用 Postman 流程之前,, 我們需要啓動我們的服務器 現在,讓我們繼續

首先,啓動 Postman 應用程序。 一旦啓動,我們就可以繼續。

在 UI 上加載後,選擇新建:

一個新彈出窗口將會打開。 從那裏 選擇 WebSocket 請求:

我們將 測試一個原始 WebSocket 請求。 屏幕應該看起來像這樣:

現在,讓我們添加我們的 URL。 按下連接按鈕並測試連接:

因此,連接正常工作。 如我們可以在控制枱中看到,我們正在從服務器接收響應。 現在,讓我們嘗試發送消息,服務器將回復:

在測試完成後,只需單擊“斷開連接”按鈕即可斷開連接。

7. 結論

在本文中,我們創建了一個簡單的應用程序來測試 WebSocket 連接,並使用 Postman 進行測試。

user avatar
0 位用戶收藏了這個故事!
收藏

發佈 評論

Some HTML is okay.