Spring Boot WebSocket: Construindo APIs em Tempo Real

Descubra como construir APIs em tempo real com Spring Boot WebSocket e Apidog. Aprenda o básico, configure um projeto e crie um aplicativo de chat em tempo real. Perfeito para desenvolvedores que buscam aprimorar suas habilidades em troca de dados em tempo real.

Miguel Oliveira

Miguel Oliveira

21 maio 2025

Spring Boot WebSocket: Construindo APIs em Tempo Real

Você já se perguntou como a comunicação em tempo real em aplicativos funciona? Você sabe, aquelas notificações instantâneas, chats ao vivo e atualizações em tempo real? Bem, tudo isso é graças aos WebSockets. E quando combinado com o Spring Boot, você tem uma ferramenta poderosa para criar aplicativos web interativos. Hoje, vamos mergulhar fundo no mundo do Spring Boot WebSocket. Ao final deste post, você terá uma compreensão sólida de como implementar e utilizar WebSockets em seus aplicativos Spring Boot. Também vamos abordar a integração com ferramentas como Apidog para otimizar a gestão da sua API.

💡
Desbloqueie todo o potencial do desenvolvimento da sua API com Apidog! Se você precisa documentar, simular, testar ou monitorar suas APIs, o Apidog tem tudo o que você precisa. Baixe o Apidog GRÁTIS hoje e otimize seu processo de gerenciamento de API, garantindo que suas aplicações funcionem de forma suave e eficiente.
button

O que é WebSocket?

WebSocket é um protocolo de comunicação que fornece canais de comunicação duplex total sobre uma única conexão TCP. Ao contrário das requisições HTTP tradicionais, que são half-duplex, o WebSocket permite uma conexão persistente entre o cliente e o servidor. Isso significa que ambos podem enviar e receber mensagens independentemente, tornando-o ideal para aplicações em tempo real.

Websocket

Por que usar Spring Boot com WebSocket?

O Spring Boot simplifica o desenvolvimento de aplicativos Spring autônomos e de nível de produção. Ele reduz a quantidade de código repetitivo e fornece suporte pronto para uso para WebSockets. Combinando Spring Boot com WebSocket, os desenvolvedores podem criar aplicações em tempo real escaláveis, manuteníveis e eficientes com configuração mínima.

Começando com Spring Boot WebSocket

Vamos começar a configurar um aplicativo Spring Boot com suporte a WebSocket. Começaremos do zero e construiremos um aplicativo de chat simples.

Passo 1: Configure seu projeto Spring Boot

Primeiro, crie um novo projeto Spring Boot. Você pode usar Spring Initializr para isso. Selecione as seguintes dependências:

Gere o projeto e descompacte o arquivo baixado. Abra-o em seu IDE favorito.

Spring Initializr

Passo 2: Configure o WebSocket no Spring Boot

Agora, precisamos configurar o WebSocket em nossa aplicação Spring Boot. Crie uma nova classe de configuração:

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

Nesta configuração, habilitamos o broker de mensagens WebSocket e definimos um endpoint /chat que os clientes usarão para se conectar. O método withSockJS() permite opções de fallback do SockJS para navegadores que não suportam WebSocket.

Passo 3: Crie um Modelo de Mensagem

Em seguida, precisamos de um modelo para representar nossas mensagens de chat. Crie um POJO simples:

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

    // Getters and setters
}

Passo 4: Crie um Controlador de Mensagem

Precisamos de um controlador para lidar com mensagens WebSocket recebidas. Crie uma nova classe de controlador:

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

Neste controlador, mapeamos mensagens recebidas enviadas para /app/sendMessage e as transmitimos a todos os assinantes de /topic/messages.

Passo 5: Crie um Frontend para Testar WebSocket

Para testar nossa configuração de WebSocket, vamos criar uma página HTML simples. Coloque este arquivo no diretório src/main/resources/static e nomeie-o como index.html:

<!DOCTYPE html>
<html>
<head>
    <title>Chat Spring Boot WebSocket</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>Chat Spring Boot WebSocket</h1>
    <div>
        <input type="text" id="sender" placeholder="Seu nome">
        <input type="text" id="message" placeholder="Mensagem">
        <button onclick="sendMessage()">Enviar</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('Conectado: ' + 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>

Este simples arquivo HTML inclui um formulário para inserir mensagens e um div para exibi-las. Ele usa SockJS e STOMP para gerenciar a comunicação WebSocket.

Passo 6: Execute a Aplicação

Execute sua aplicação Spring Boot e abra http://localhost:8080 em seu navegador. Abra a mesma URL em várias abas para ver o chat em tempo real em ação.

Depurando Springboot WebSockets com Apidog

Apidog é uma ferramenta fantástica para documentação e teste de APIs. Ela simplifica o processo de documentação e teste de suas APIs WebSocket Spring Boot. Fornece uma interface amigável para estabelecer conexões WebSocket, enviar e receber mensagens, e documentar APIs.

button

Aqui está como você pode usar o Apidog para depurar um cliente WebSocket:

  1. Abrir Apidog: Primeiro, inicie o aplicativo Apidog e clique no botão "+" no lado esquerdo. Um novo menu suspenso será aberto. De lá, escolha "Nova API WebSocket":
Interface do Apidog

2. Estabelecer uma Conexão: Comece inserindo a URL da API WebSocket na barra de endereços do Apidog. Você pode então clicar no botão “Conectar” para iniciar o processo de handshake e estabelecer uma conexão. O Apidog permite que você personalize parâmetros como Params, Headers e Cookies durante o handshake.

Interface do Apidog

3. Enviar e Receber Mensagens: Uma vez que a conexão é estabelecida, você pode enviar mensagens na aba "Mensagem". Você pode escrever texto, JSON, XML, HTML e outras mensagens em formato de texto, bem como mensagens em formato binário usando Base64 ou Hexadecimal. A nova visualização em linha do Apidog mostra o status da conexão, mensagens enviadas e recebidas em ordem cronológica. Quando você clica em uma mensagem, pode visualizar facilmente seus detalhes.

Interface do Apidog

4. Documentação da API: O Apidog herda sua robusta funcionalidade de documentação de APIs para APIs WebSocket, permitindo documentar suas interações WebSocket de forma eficaz.

Interface do Apidog

Lembre-se de verificar problemas comuns de WebSocket, como problemas de conexão, erros de formato de mensagem e preocupações com segurança durante seu processo de depuração.

Conclusão

Neste post, exploramos como configurar um aplicativo de chat em tempo real usando Spring Boot WebSocket. Começamos configurando o WebSocket em um projeto Spring Boot, criamos um aplicativo de chat simples e o integramos com o Apidog para melhor gerenciamento da API. Com WebSockets e Spring Boot, você pode construir aplicações em tempo real eficientes que fornecem uma experiência de usuário tranquila. Ao aproveitar ferramentas como o Apidog, você pode aprimorar seu fluxo de trabalho de desenvolvimento, garantindo que suas APIs sejam bem documentadas, testadas e monitoradas.

A comunicação em tempo real é um divisor de águas para aplicações web modernas. Seja para chat ao vivo, notificações ou ferramentas colaborativas, dominar o WebSocket com Spring Boot abre um mundo de possibilidades.

Explore more

Como acessar a API do Claude 3.7 Sonnet e testar usando Apidog

Como acessar a API do Claude 3.7 Sonnet e testar usando Apidog

Se você está empolgado com o último lançamento da Anthropic, Claude 3.7 Sonnet, e quer explorar suas capacidades através da API enquanto o testa com o Apidog, você está no lugar certo. 💡Antes de começarmos, deixe-me fazer uma rápida observação: baixe o Apidog gratuitamente hoje e otimize seu processo de teste de API, especialmente para explorar os poderosos recursos do Claude 3.7 Sonnet—perfeito para desenvolvedores que desejam testar modelos de IA de ponta como este!botão Vamos começar com a

25 fevereiro 2025

Como passar o x-API-key no cabeçalho?

Como passar o x-API-key no cabeçalho?

Desvende os segredos da segurança eficaz de APIs, dominando como passar x-API-key nos cabeçalhos. Este guia abrangente revelará a importância desse processo e como ferramentas como o Apidog podem facilitar seus esforços. Continue lendo para garantir que suas interações com a API permaneçam seguras!

12 agosto 2024

Como corrigir o erro HTTP 405 Método Não Permitido no Postman

Como corrigir o erro HTTP 405 Método Não Permitido no Postman

O código de erro HTTP 405 ocorre quando você tenta acessar um servidor usando uma chave de API ou token de acesso inválido ou ausente. Neste artigo, veremos mais sobre o erro 405 e como corrigi-lo.

11 agosto 2024

Pratique o design de API no Apidog

Descubra uma forma mais fácil de construir e usar APIs