Spring Boot WebSocket: Gerçek Zamanlı API'ler Oluşturmak

Spring Boot WebSocket ve Apidog ile gerçek zamanlı API'ler oluşturmayı öğrenin. Temel bilgiler, proje kurulumu ve gerçek zamanlı sohbet uygulaması geliştirin.

Efe Demir

Efe Demir

5 June 2025

Spring Boot WebSocket: Gerçek Zamanlı API'ler Oluşturmak

Uygulamalarda gerçek zamanlı iletişimin nasıl çalıştığını hiç merak ettiniz mi? Bildiğiniz gibi, anlık bildirimler, canlı sohbetler ve gerçek zamanlı güncellemeler? Bunun hepsi WebSockets sayesinde. Ve Spring Boot ile birleştirildiğinde, etkileşimli web uygulamaları oluşturmak için güçlü bir araca sahip olursunuz. Bugün, Spring Boot WebSocket dünyasına derinlemesine dalıyoruz. Bu yazının sonunda, Spring Boot uygulamalarınızda WebSockets'i nasıl uygulayacağınız ve kullanacağınız konusunda sağlam bir anlayışa sahip olacaksınız. Ayrıca, API yönetiminizi kolaylaştırmak için Apidog gibi araçlarla entegrasyonuna da değineceğiz.

💡
API geliştirmenizin tüm potansiyelini Apidog ile açığa çıkarın! API'lerinizi belgelemeniz, taklit etmeniz, test etmeniz veya izlemeniz gerekip gerekmediği, Apidog sizi korur. Apidog'u ÜCRETSİZ indirin ve API yönetimi sürecinizi kolaylaştırın, uygulamalarınızın sorunsuz ve verimli çalışmasını sağlayın.
button

WebSocket Nedir?

WebSocket, tek bir TCP bağlantısı üzerinden tam çift yönlü iletişim kanalları sağlayan bir iletişim protokolüdür. Yarı çift yönlü olan geleneksel HTTP isteklerinden farklı olarak, WebSocket istemci ve sunucu arasında kalıcı bir bağlantıya izin verir. Bu, her ikisinin de bağımsız olarak mesaj gönderip alabileceği anlamına gelir ve bu da onu gerçek zamanlı uygulamalar için ideal hale getirir.

Websocket

Neden Spring Boot'u WebSocket ile Kullanmalısınız?

Spring Boot, bağımsız, üretim kalitesinde Spring tabanlı uygulamaların geliştirilmesini basitleştirir. Hazır kod miktarını azaltır ve WebSockets için kullanıma hazır destek sağlar. Spring Boot'u WebSocket ile birleştirmek, geliştiricilerin minimum kurulumla ölçeklenebilir, bakımı yapılabilir ve verimli gerçek zamanlı uygulamalar oluşturmasına olanak tanır.

Spring Boot WebSocket'e Başlarken

Hemen bir Spring Boot uygulamasını WebSocket desteğiyle kurmaya başlayalım. Sıfırdan başlayıp basit bir sohbet uygulaması oluşturacağız.

Adım 1: Spring Boot Projenizi Kurun

İlk olarak, yeni bir Spring Boot projesi oluşturun. Bunun için Spring Initializr'ı kullanabilirsiniz. Aşağıdaki bağımlılıkları seçin:

Projeyi oluşturun ve indirilen dosyayı açın. En sevdiğiniz IDE'nizde açın.

Spring Initializr

Adım 2: Spring Boot'ta WebSocket'i Yapılandırın

Şimdi, Spring Boot uygulamamızda WebSocket'i yapılandırmamız gerekiyor. Yeni bir yapılandırma sınıfı oluşturun:

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");
    }
}

Bu yapılandırmada, WebSocket mesaj aracısını etkinleştiriyoruz ve istemcilerin bağlanmak için kullanacağı bir uç nokta /chat tanımlıyoruz. withSockJS() yöntemi, WebSocket'i desteklemeyen tarayıcılar için SockJS yedek seçeneklerine izin verir.

Adım 3: Bir Mesaj Modeli Oluşturun

Ardından, sohbet mesajlarımızı temsil etmek için bir modele ihtiyacımız var. Basit bir POJO oluşturun:

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

    // Getters and setters
}

Adım 4: Bir Mesaj Kontrolcüsü Oluşturun

Gelen WebSocket mesajlarını işlemek için bir kontrolcüye ihtiyacımız var. Yeni bir kontrolcü sınıfı oluşturun:

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;
    }
}

Bu kontrolcide, /app/sendMessage'ye gönderilen gelen mesajları eşleştiriyoruz ve bunları /topic/messages'ın tüm abonelerine yayınlıyoruz.

Adım 5: WebSocket'i Test Etmek İçin Ön Uç Oluşturun

WebSocket kurulumumuzu test etmek için basit bir HTML sayfası oluşturalım. Bu dosyayı src/main/resources/static dizinine yerleştirin ve index.html olarak adlandırın:

<!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="Adınız">
        <input type="text" id="message" placeholder="Mesaj">
        <button onclick="sendMessage()">Gönder</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>

Bu basit HTML dosyası, mesaj girmek için bir form ve bunları görüntülemek için bir div içerir. WebSocket iletişimini işlemek için SockJS ve STOMP kullanır.

Adım 6: Uygulamayı Çalıştırın

Spring Boot uygulamanızı çalıştırın ve tarayıcınızda http://localhost:8080 adresini açın. Gerçek zamanlı sohbeti görmek için aynı URL'yi birden fazla sekmede açın.

Apidog ile Springboot WebSockets'in Hata Ayıklaması

Apidog, API dokümantasyonu ve test için harika bir araçtır. Spring Boot WebSocket API'lerinizi belgelemeyi ve test etmeyi basitleştirir. WebSocket bağlantıları kurmak, mesaj göndermek ve almak ve API'leri belgelemek için kullanıcı dostu bir arayüz sağlar.

button

Apidog'u bir WebSocket istemcisinde hata ayıklamak için nasıl kullanabileceğiniz aşağıda açıklanmıştır:

  1. Apidog'u Açın: İlk olarak, Apidog uygulamasını başlatın ve sol taraftaki "+" düğmesine tıklayın, Yeni bir açılır menü açılacaktır. Oradan "Yeni WebSocket API"'yi seçin:
Apidog interface

2. Bir Bağlantı Kurun: WebSocket API URL'sini Apidog'un adres çubuğuna girerek başlayın. Daha sonra el sıkışma işlemini başlatmak ve bir bağlantı kurmak için "Bağlan" düğmesine tıklayabilirsiniz. Apidog, el sıkışma sırasında Parametreler, Başlıklar ve Çerezler gibi parametreleri özelleştirmenize olanak tanır.

Apidog interface

3. Mesaj Gönderin ve Alın: Bağlantı kurulduktan sonra, "Mesaj" sekmesi altında mesaj gönderebilirsiniz. Metin, JSON, XML, HTML ve diğer metin formatı mesajlarının yanı sıra Base64 veya Onaltılık kullanarak ikili format mesajları yazabilirsiniz. Apidog'un yeni zaman çizelgesi görünümü, bağlantı durumunu, gönderilen mesajları ve alınan mesajları kronolojik sırayla gösterir. Bir mesaja tıkladığınızda, ayrıntılarını kolayca görüntüleyebilirsiniz.

Apidog interface

4. API Dokümantasyonu: Apidog, WebSocket etkileşimlerinizi etkili bir şekilde belgelemeye olanak tanıyarak, WebSocket API'leri için sağlam API dokümantasyon işlevselliğini miras alır.

Apidog interface

Hata ayıklama işleminiz sırasında bağlantı sorunları, mesaj formatı hataları ve güvenlik endişeleri gibi yaygın WebSocket sorunlarını kontrol etmeyi unutmayın.

Sonuç

Bu yazıda, Spring Boot WebSocket kullanarak gerçek zamanlı bir sohbet uygulamasının nasıl kurulacağını inceledik. Bir Spring Boot projesinde WebSocket'i yapılandırarak başladık, basit bir sohbet uygulaması oluşturduk ve daha iyi API yönetimi için Apidog ile entegre ettik. WebSockets ve Spring Boot ile, kesintisiz bir kullanıcı deneyimi sağlayan verimli, gerçek zamanlı uygulamalar oluşturabilirsiniz. Apidog gibi araçlardan yararlanarak, API'lerinizin iyi belgelenmesini, test edilmesini ve izlenmesini sağlayarak geliştirme iş akışınızı geliştirebilirsiniz.

Gerçek zamanlı iletişim, modern web uygulamaları için oyunun kurallarını değiştiriyor. İster canlı sohbet, ister bildirimler veya işbirliği araçları için olsun, Spring Boot ile WebSocket'te ustalaşmak bir olasılıklar dünyasının kapılarını açar.

Explore more

Cursor ile Deepseek R1'i Yerel Olarak Nasıl Kullanılır

Cursor ile Deepseek R1'i Yerel Olarak Nasıl Kullanılır

Yerel DeepSeek R1'i Cursor IDE ile kurun ve yapılandırın. Özel, uygun maliyetli AI kodlama yardımı için.

4 June 2025

Android'de Gemma 3n Nasıl Çalıştırılır?

Android'de Gemma 3n Nasıl Çalıştırılır?

Google AI Edge Gallery'den Gemma 3n'i Android'e kurup çalıştırmayı öğrenin.

3 June 2025

GitHub Eylemleri ile Claude Kodunu Nasıl Kullanılır

GitHub Eylemleri ile Claude Kodunu Nasıl Kullanılır

Claude Code'u GitHub Actions ile entegre edin: Kod incelemeleri, hata düzeltmeleri ve özellik uygulamaları. Kurulum, iş akışları ve geliştiriciler için ipuçları.

29 May 2025

API Tasarım-Öncelikli Yaklaşımı Apidog'da Uygulayın

API'leri oluşturmanın ve kullanmanın daha kolay yolunu keşfedin