WebSockets och realtidssystem med Spring · Lektion

Konfigurera STOMP med Spring

Konfigurera Springs STOMP-broker och mekanismer för meddelandehantering för effektiv kommunikation.

Lektion 2 av 411 steg

Konfigurera STOMP med Spring är en gratis lektion i WebSockets och realtidssystem med Spring på CoddyKit. Detta är lektion 2 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för WebSockets och realtidssystem med Spring, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i WebSockets och realtidssystem med Spring innehåller totalt 4 lektioner.

Konfiguration av Spring och STOMP

Spring Boot gör det betydligt enklare att bygga realtidsapplikationer med WebSockets och STOMP. Det tillhandahåller kraftfulla abstraktioner och automatisk konfiguration som hjälper dig att snabbt komma igång.

I den här lektionen lär vi oss hur Spring konfigureras för att hantera STOMP-meddelanden. Det innebär att konfigurera meddelandeförmedlare, definiera slutpunkter och upprätta kommunikationsvägar.

Aktivera STOMP med Spring

Det första steget är att aktivera Springs funktioner för WebSocket-meddelandeförmedling. Detta görs med en enda annotering: @EnableWebSocketMessageBroker.

  • Den här annoteringen konfigurerar en meddelandeförmedlare i bakgrunden.
  • Den konfigurerar även en Spring-applikationskontext för hantering av STOMP-meddelanden.
  • Vanligtvis placerar du den på en konfigurationsklass.

Anpassa din STOMP-konfiguration

För att anpassa hur Spring hanterar WebSocket- och STOMP-meddelanden implementerar du gränssnittet WebSocketMessageBrokerConfigurer.

Det här gränssnittet tillhandahåller metoder som låter dig:

  • Konfigurera meddelandeförmedlaren.
  • Registrera STOMP-slutpunkter.
  • Lägga till interceptorer och anpassa meddelandekonverterare.

Konfigurera meddelandeförmedlaren

Meddelandeförmedlaren dirigerar meddelanden till deras avsedda mottagare. Spring tillhandahåller en "enkel" minnesbaserad meddelandeförmedlare för grundläggande behov.

Ni konfigurerar den i metoden configureMessageBroker:

  • enableSimpleBroker(): Aktiverar den minnesbaserade meddelandeförmedlaren.
  • Sökvägar som /topic används för offentliga meddelanden enligt modellen publicera-prenumerera.
  • Sökvägar som /queue används för privata punkt-till-punkt-meddelanden.

Exempel på enkel meddelandeförmedlare

Så här konfigurerar ni den grundläggande minnesbaserade meddelandeförmedlaren med destinationerna /topic och /queue. Då kan klienter prenumerera på offentliga ämnen och skicka privata meddelanden.

package com.coddykit;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Configuration;
import org.springframework.messaging.simp.config.MessageBrokerRegistry;
import org.springframework.web.socket.config.annotation.EnableWebSocketMessageBroker;
import org.springframework.web.socket.config.annotation.WebSocketMessageBrokerConfigurer;

@SpringBootApplication
public class MainApplication {
    public static void main(String[] args) {
        SpringApplication.run(MainApplication.class, args);
    }
}

@Configuration
@EnableWebSocketMessageBroker
class WebSocketConfig implements WebSocketMessageBrokerConfigurer {

    @Override
    public void configureMessageBroker(MessageBrokerRegistry config) {
        config.enableSimpleBroker("/topic", "/queue");
    }
    // Endpoints will be added later
}

Sökvägar från klient till server

När en klient skickar ett meddelande till servern riktas det vanligtvis till en specifik hanterare på serversidan. Vi definierar ett prefix för dessa meddelanden med hjälp av setApplicationDestinationPrefixes().

  • Om prefixet till exempel är /app skickar klienterna meddelanden till sökvägar som /app/chat.sendMessage.
  • Dessa meddelanden dirigeras sedan till metoder på servern som har annoteringen @MessageMapping.

Exempel på prefix för applikationsdestination

Nu uppdaterar vi konfigurationen så att den innehåller ett prefix för applikationsdestinationer. Det talar om för Spring vilka meddelanden som är avsedda för metoder på serversidan.

package com.coddykit;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Configuration;
import org.springframework.messaging.simp.config.MessageBrokerRegistry;
import org.springframework.web.socket.config.annotation.EnableWebSocketMessageBroker;
import org.springframework.web.socket.config.annotation.WebSocketMessageBrokerConfigurer;

@SpringBootApplication
public class MainApplication {
    public static void main(String[] args) {
        SpringApplication.run(MainApplication.class, args);
    }
}

@Configuration
@EnableWebSocketMessageBroker
class WebSocketConfig implements WebSocketMessageBrokerConfigurer {

    @Override
    public void configureMessageBroker(MessageBrokerRegistry config) {
        config.enableSimpleBroker("/topic", "/queue");
        // Messages from clients for the server will start with /app
        config.setApplicationDestinationPrefixes("/app");
    }
    // Endpoints will be added later
}

Definiera anslutningspunkt för WebSocket

Klienter behöver en specifik HTTP-slutpunkt för att initiera WebSocket-handskakningen. Det är där de först ansluter innan STOMP-meddelandena börjar skickas.

Ni definierar denna slutpunkt med registerStompEndpoints():

  • addEndpoint("/ws"): Gör slutpunkten tillgänglig på http://localhost:8080/ws.
  • withSockJS(): Aktiverar reservalternativ med SockJS för webbläsare som inte har fullständigt stöd för WebSockets.

Fullständig STOMP-konfiguration

Här är den fullständiga konfigurationsklassen, där konfigurationen av meddelandeförmedlaren, prefixet för applikationsdestinationer och registreringen av STOMP-slutpunkten kombineras. Detta är grunden för er Spring STOMP-applikation.

package com.coddykit;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Configuration;
import org.springframework.messaging.simp.config.MessageBrokerRegistry;
import org.springframework.web.socket.config.annotation.EnableWebSocketMessageBroker;
import org.springframework.web.socket.config.annotation.StompEndpointRegistry;
import org.springframework.web.socket.config.annotation.WebSocketMessageBrokerConfigurer;

@SpringBootApplication
public class MainApplication {
    public static void main(String[] args) {
        SpringApplication.run(MainApplication.class, args);
    }
}

@Configuration
@EnableWebSocketMessageBroker
class WebSocketConfig implements WebSocketMessageBrokerConfigurer {

    @Override
    public void configureMessageBroker(MessageBrokerRegistry config) {
        // Messages for client subscriptions (server to client)
        config.enableSimpleBroker("/topic", "/queue");
        // Messages from clients to server-side handlers
        config.setApplicationDestinationPrefixes("/app");
    }

    @Override
    public void registerStompEndpoints(StompEndpointRegistry registry) {
        // The HTTP endpoint for WebSocket handshake
        registry.addEndpoint("/ws").withSockJS();
    }
}

Kontrollera konfigurationen

Ni har lärt er om olika prefix i Spring STOMP-konfigurationen. Det är viktigt att förstå deras roller.

Sammanfattning av konfigurationen

Ni har nu lärt er att konfigurera Spring för STOMP-meddelanden! Här är en snabb sammanfattning:

  • @EnableWebSocketMessageBroker: Aktiverar stöd för WebSocket och STOMP.
  • WebSocketMessageBrokerConfigurer: Gränssnitt för anpassning av konfigurationen.
  • configureMessageBroker(): Konfigurerar meddelandeförmedlaren (till exempel enableSimpleBroker("/topic", "/queue")) och prefix för applikationsdestinationer (till exempel setApplicationDestinationPrefixes("/app")).
  • registerStompEndpoints(): Definierar URL:en för WebSocket-handskakningen (till exempel addEndpoint("/ws").withSockJS()).

Dessa steg lägger grunden för att bygga kraftfulla realtidsfunktioner med Spring och STOMP!

Gratis att börja

Lär dig WebSockets och realtidssystem med Spring med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
12
Lektioner
48

Vanliga frågor

Är lektionen ”Konfigurera STOMP med Spring” gratis?

Ja – hela texten till ”Konfigurera STOMP med Spring” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i WebSockets och realtidssystem med Spring, kan Ni uppgradera till CoddyKit PRO. Kursen i WebSockets och realtidssystem med Spring innehåller totalt 4 lektioner.

Vad lär jag mig i ”Konfigurera STOMP med Spring”?

Konfigurera Springs STOMP-broker och mekanismer för meddelandehantering för effektiv kommunikation. Ni övar på WebSockets och realtidssystem med Spring med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig WebSockets och realtidssystem med Spring?

Du behöver inga förkunskaper. Utbildningen i WebSockets och realtidssystem med Spring på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.

Hur lång tid tar lektionen ”Konfigurera STOMP med Spring”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här WebSockets och realtidssystem med Spring-lektionen?

Ja. Varje WebSockets och realtidssystem med Spring-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Introduktion till STOMP-protokollet
  2. Konfigurera STOMP med Spring
  3. Skicka och ta emot STOMP-meddelanden
  4. Säkra STOMP-endpoints med Spring Security
← Tillbaka till WebSockets och realtidssystem med Spring