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.
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).
O projeto utiliza Maven para gerenciar dependências e build. O arquivo pom.xml
está configurado com as seguintes dependências principais:
- Jakarta WebSocket Client API: Proporciona a API para o cliente WebSocket.
- Tyrus Client: Implementação da API WebSocket.
- Tyrus Grizzly Container: Adiciona suporte para execução no ambiente Grizzly.
- Tyrus Standalone Client: Suporte adicional para ambientes Java SE.
<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>
git clone <URL-DO-REPOSITORIO>
cd websocket-client
Use o Maven para compilar o projeto:
mvn clean install
Certifique-se de que o servidor WebSocket esteja em execução e disponível no URI especificado. Por exemplo:
ws://localhost:8080/endpoint
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
- 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.
websocket-client/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ ├── com/
│ │ │ │ ├── example/
│ │ │ │ │ ├── websocket/
│ │ │ │ │ │ ├── WebSocketClient.java
│ │ │ │ │ │ ├── Main.java
├── pom.xml
WebSocketClient client = WebSocketClient.connect("ws://meu-servidor-websocket.com/endpoint");
client.sendMessage("Olá, WebSocket!");
client.close();
Contribuições são bem-vindas! Para contribuir:
- Faça um fork do repositório.
- Crie uma branch para sua feature (
git checkout -b minha-feature
). - Commit suas alterações (
git commit -am 'Minha nova feature'
). - Faça o push da branch (
git push origin minha-feature
). - Abra um Pull Request.
Este projeto está sob a licença MIT. Sinta-se à vontade para usá-lo e modificá-lo como desejar.