Skip to content

Latest commit

 

History

History
164 lines (119 loc) · 4.33 KB

README.md

File metadata and controls

164 lines (119 loc) · 4.33 KB

WebSocket Client

Este projeto é um cliente WebSocket escrito em Java 23 utilizando a API Jakarta WebSocket. Ele é configurado para se conectar a servidores WebSocket e enviar/receber mensagens em tempo real. O projeto usa o Tyrus como implementação de referência da API WebSocket.

Requisitos

Certifique-se de que você tem os seguintes requisitos antes de começar:

  • Java 23 ou superior instalado.
  • Maven configurado no ambiente.
  • Um servidor WebSocket para testar (pode ser local ou remoto).

Configuração do Projeto

O projeto utiliza Maven para gerenciar dependências e build. O arquivo pom.xml está configurado com as seguintes dependências principais:

  1. Jakarta WebSocket Client API: Proporciona a API para o cliente WebSocket.
  2. Tyrus Client: Implementação da API WebSocket.
  3. Tyrus Grizzly Container: Adiciona suporte para execução no ambiente Grizzly.
  4. Tyrus Standalone Client: Suporte adicional para ambientes Java SE.

Dependências no pom.xml

<dependencies>
    <!-- API do cliente Jakarta WebSocket -->
    <dependency>
        <groupId>jakarta.websocket</groupId>
        <artifactId>jakarta.websocket-client-api</artifactId>
        <version>2.1.1</version>
    </dependency>

    <!-- Implementação do Tyrus -->
    <dependency>
        <groupId>org.glassfish.tyrus</groupId>
        <artifactId>tyrus-client</artifactId>
        <version>2.1.1</version>
    </dependency>

    <!-- Suporte a Grizzly para o Tyrus -->
    <dependency>
        <groupId>org.glassfish.tyrus</groupId>
        <artifactId>tyrus-container-grizzly-client</artifactId>
        <version>2.1.1</version>
    </dependency>

    <!-- Opcional: Suporte ao Java SE -->
    <dependency>
        <groupId>org.glassfish.tyrus.bundles</groupId>
        <artifactId>tyrus-standalone-client</artifactId>
        <version>2.1.1</version>
    </dependency>
</dependencies>

Como Usar

1. Clonar o Repositório

git clone <URL-DO-REPOSITORIO>
cd websocket-client

2. Compilar o Projeto

Use o Maven para compilar o projeto:

mvn clean install

3. Configurar o Servidor WebSocket

Certifique-se de que o servidor WebSocket esteja em execução e disponível no URI especificado. Por exemplo:

ws://localhost:8080/endpoint

4. Executar o Cliente

Implemente a classe principal para se conectar ao servidor WebSocket:

public class Main {
    public static void main(String[] args) {
        try {
            String serverURI = "ws://localhost:8080/endpoint";
            WebSocketClient client = WebSocketClient.connect(serverURI);

            client.sendMessage("Olá, servidor!");
            
            // Aguarde respostas
            Thread.sleep(5000);

            client.sendMessage("Encerrando conexão.");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Execute o cliente:

java -cp "target/classes:target/dependency/*" com.example.websocket.Main

Recursos

  • Envio de Mensagens: Suporte para envio de mensagens ao servidor.
  • Recepção de Mensagens: Respostas recebidas do servidor são exibidas no console.
  • Gerenciamento de Conexões: Métodos para abrir e fechar conexões WebSocket.

Estrutura do Projeto

websocket-client/
├── src/
│   ├── main/
│   │   ├── java/
│   │   │   ├── com/
│   │   │   │   ├── example/
│   │   │   │   │   ├── websocket/
│   │   │   │   │   │   ├── WebSocketClient.java
│   │   │   │   │   │   ├── Main.java
├── pom.xml

Exemplos de Uso

Conectar ao Servidor

WebSocketClient client = WebSocketClient.connect("ws://meu-servidor-websocket.com/endpoint");

Enviar uma Mensagem

client.sendMessage("Olá, WebSocket!");

Fechar a Conexão

client.close();

Contribuições

Contribuições são bem-vindas! Para contribuir:

  1. Faça um fork do repositório.
  2. Crie uma branch para sua feature (git checkout -b minha-feature).
  3. Commit suas alterações (git commit -am 'Minha nova feature').
  4. Faça o push da branch (git push origin minha-feature).
  5. Abra um Pull Request.

Licença

Este projeto está sob a licença MIT. Sinta-se à vontade para usá-lo e modificá-lo como desejar.