Apidog

Platform Pengembangan API Kolaboratif All-in-one

Desain API

Dokumentasi API

Debug API

Mocking API

Pengujian Otomatis API

Spring Boot WebSocket: Membangun API Real-Time

Pelajari cara membuat API real-time dgn Spring Boot WebSocket & Apidog. Buat proyek & aplikasi chat real-time. Cocok utk pengembang yg ingin meningkatkan keahlian.

Ardianto Nugroho

Ardianto Nugroho

Updated on May 8, 2025

Pernahkah Anda bertanya-tanya bagaimana komunikasi waktu nyata dalam aplikasi bekerja? Anda tahu, notifikasi instan, obrolan langsung, dan pembaruan waktu nyata itu? Nah, itu semua berkat WebSocket. Dan ketika dikombinasikan dengan Spring Boot, Anda memiliki alat yang ampuh untuk membuat aplikasi web interaktif. Hari ini, kita akan menyelami dunia Spring Boot WebSocket. Pada akhir postingan ini, Anda akan memiliki pemahaman yang kuat tentang cara mengimplementasikan dan memanfaatkan WebSocket di aplikasi Spring Boot Anda. Kami juga akan membahas tentang mengintegrasikannya dengan alat seperti Apidog untuk menyederhanakan manajemen API Anda.

💡
Buka potensi penuh pengembangan API Anda dengan Apidog! Apakah Anda perlu mendokumentasikan, mengejek, menguji, atau memantau API Anda, Apidog siap membantu Anda. Unduh Apidog secara GRATIS hari ini dan sederhanakan proses manajemen API Anda, pastikan aplikasi Anda berjalan dengan lancar dan efisien.
button

Apa itu WebSocket?

WebSocket adalah protokol komunikasi yang menyediakan saluran komunikasi dua arah penuh melalui satu koneksi TCP. Tidak seperti permintaan HTTP tradisional, yang bersifat setengah dupleks, WebSocket memungkinkan koneksi persisten antara klien dan server. Ini berarti keduanya dapat mengirim dan menerima pesan secara independen, menjadikannya ideal untuk aplikasi waktu nyata.

Websocket

Mengapa Menggunakan Spring Boot dengan WebSocket?

Spring Boot menyederhanakan pengembangan aplikasi berbasis Spring mandiri dan berkualitas produksi. Ini mengurangi jumlah kode boilerplate dan menyediakan dukungan langsung untuk WebSocket. Menggabungkan Spring Boot dengan WebSocket memungkinkan pengembang untuk membuat aplikasi waktu nyata yang terukur, mudah dipelihara, dan efisien dengan pengaturan minimal.

Memulai dengan Spring Boot WebSocket

Mari kita langsung masuk ke pengaturan aplikasi Spring Boot dengan dukungan WebSocket. Kita akan mulai dari awal dan membangun aplikasi obrolan sederhana.

Langkah 1: Siapkan Proyek Spring Boot Anda

Pertama, buat proyek Spring Boot baru. Anda dapat menggunakan Spring Initializr untuk ini. Pilih dependensi berikut:

  • Spring Web
  • WebSocket

Hasilkan proyek dan unzip file yang diunduh. Buka di IDE favorit Anda.

Spring Initializr

Langkah 2: Konfigurasikan WebSocket di Spring Boot

Sekarang, kita perlu mengkonfigurasi WebSocket di aplikasi Spring Boot kita. Buat kelas konfigurasi baru:

import org.springframework.context.annotation.Configuration;
import org.springframework.web.socket.config.annotation.EnableWebSocketMessageBroker;
import org.springframework.web.socket.config.annotation.StompEndpointRegistry;
import org.springframework.web.socket.config.annotation.WebSocketMessageBrokerConfigurer;

@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {

    @Override
    public void registerStompEndpoints(StompEndpointRegistry registry) {
        registry.addEndpoint("/chat").withSockJS();
    }

    @Override
    public void configureMessageBroker(MessageBrokerRegistry config) {
        config.enableSimpleBroker("/topic");
        config.setApplicationDestinationPrefixes("/app");
    }
}

Dalam konfigurasi ini, kita mengaktifkan message broker WebSocket dan mendefinisikan endpoint /chat yang akan digunakan klien untuk terhubung. Metode withSockJS() memungkinkan opsi fallback SockJS untuk browser yang tidak mendukung WebSocket.

Langkah 3: Buat Model Pesan

Selanjutnya, kita membutuhkan model untuk mewakili pesan obrolan kita. Buat POJO sederhana:

public class ChatMessage {
    private String content;
    private String sender;

    // Getters and setters
}

Langkah 4: Buat Pengontrol Pesan

Kita membutuhkan pengontrol untuk menangani pesan WebSocket yang masuk. Buat kelas pengontrol baru:

import org.springframework.messaging.handler.annotation.MessageMapping;
import org.springframework.messaging.handler.annotation.SendTo;
import org.springframework.stereotype.Controller;

@Controller
public class ChatController {

    @MessageMapping("/sendMessage")
    @SendTo("/topic/messages")
    public ChatMessage sendMessage(ChatMessage chatMessage) {
        return chatMessage;
    }
}

Dalam pengontrol ini, kita memetakan pesan masuk yang dikirim ke /app/sendMessage dan menyiarkannya ke semua pelanggan /topic/messages.

Langkah 5: Buat Frontend untuk Menguji WebSocket

Untuk menguji pengaturan WebSocket kita, mari buat halaman HTML sederhana. Tempatkan file ini di direktori src/main/resources/static dan beri nama index.html:

<!DOCTYPE html>
<html>
<head>
    <title>Spring Boot WebSocket Chat</title>
    <script src="https://cdn.jsdelivr.net/npm/sockjs-client@1.5.0/dist/sockjs.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/stompjs@2.3.3/lib/stomp.min.js"></script>
</head>
<body>
    <h1>Spring Boot WebSocket Chat</h1>
    <div>
        <input type="text" id="sender" placeholder="Nama Anda">
        <input type="text" id="message" placeholder="Pesan">
        <button onclick="sendMessage()">Kirim</button>
    </div>
    <div id="messages"></div>

    <script>
        var stompClient = null;

        function connect() {
            var socket = new SockJS('/chat');
            stompClient = Stomp.over(socket);
            stompClient.connect({}, function (frame) {
                console.log('Connected: ' + frame);
                stompClient.subscribe('/topic/messages', function (chatMessage) {
                    showMessage(JSON.parse(chatMessage.body));
                });
            });
        }

        function sendMessage() {
            var sender = document.getElementById('sender').value;
            var message = document.getElementById('message').value;
            stompClient.send("/app/sendMessage", {}, JSON.stringify({'sender': sender, 'content': message}));
        }

        function showMessage(message) {
            var messages = document.getElementById('messages');
            var messageElement = document.createElement('div');
            messageElement.appendChild(document.createTextNode(message.sender + ": " + message.content));
            messages.appendChild(messageElement);
        }

        window.onload = connect;
    </script>
</body>
</html>

File HTML sederhana ini menyertakan formulir untuk memasukkan pesan dan div untuk menampilkannya. Ini menggunakan SockJS dan STOMP untuk menangani komunikasi WebSocket.

Langkah 6: Jalankan Aplikasi

Jalankan aplikasi Spring Boot Anda dan buka http://localhost:8080 di browser Anda. Buka URL yang sama di beberapa tab untuk melihat obrolan waktu nyata beraksi.

Men-debug Springboot WebSocket dengan Apidog

Apidog adalah alat yang fantastis untuk dokumentasi dan pengujian API. Ini menyederhanakan proses pendokumentasian dan pengujian API Spring Boot WebSocket Anda. Ini menyediakan antarmuka yang ramah pengguna untuk membuat koneksi WebSocket, mengirim dan menerima pesan, dan mendokumentasikan API.

button

Berikut adalah cara Anda dapat menggunakan Apidog untuk men-debug klien WebSocket:

  1. Buka Apidog: Pertama, mulai aplikasi Apidog dan klik tombol "+" di sisi kiri, Sebuah drop-down baru akan dibuka. Dari sana pilih "API WebSocket Baru":
Apidog interface

2. Buat Koneksi: Mulailah dengan memasukkan URL API WebSocket di bilah alamat Apidog. Anda kemudian dapat mengklik tombol "Hubungkan" untuk memulai proses handshake dan membuat koneksi. Apidog memungkinkan Anda untuk menyesuaikan parameter seperti Params, Headers, dan Cookies selama handshake.

Apidog interface

3. Kirim dan Terima Pesan: Setelah koneksi dibuat, Anda dapat mengirim pesan di bawah tab "Pesan". Anda dapat menulis teks, JSON, XML, HTML, dan pesan format teks lainnya, serta pesan format biner menggunakan Base64 atau Hexadecimal. Tampilan timeline baru Apidog menunjukkan status koneksi, pesan yang dikirim, dan pesan yang diterima dalam urutan kronologis. Saat Anda mengklik pesan, Anda dapat dengan mudah melihat detailnya.

Apidog interface

4. Dokumentasi API: Apidog mewarisi fungsionalitas dokumentasi API yang kuat untuk API WebSocket, memungkinkan Anda untuk mendokumentasikan interaksi WebSocket Anda secara efektif.

Apidog interface

Ingatlah untuk memeriksa masalah WebSocket umum seperti masalah koneksi, kesalahan format pesan, dan masalah keamanan selama proses debugging Anda.

Kesimpulan

Dalam postingan ini, kita telah menjelajahi cara menyiapkan aplikasi obrolan waktu nyata menggunakan Spring Boot WebSocket. Kita mulai dengan mengkonfigurasi WebSocket dalam proyek Spring Boot, membuat aplikasi obrolan sederhana, dan mengintegrasikannya dengan Apidog untuk manajemen API yang lebih baik. Dengan WebSocket dan Spring Boot, Anda dapat membangun aplikasi waktu nyata yang efisien yang memberikan pengalaman pengguna yang mulus. Dengan memanfaatkan alat seperti Apidog, Anda dapat meningkatkan alur kerja pengembangan Anda, memastikan API Anda didokumentasikan, diuji, dan dipantau dengan baik.

Komunikasi waktu nyata adalah pengubah permainan untuk aplikasi web modern. Baik itu untuk obrolan langsung, notifikasi, atau alat kolaborasi, menguasai WebSocket dengan Spring Boot membuka dunia kemungkinan.