Encontrei um ótimo exemplo usando javax.websocket
aqui:
http://www.programmingforliving.com/2013/08/jsr-356-java-api-for-websocket-client-api.html
Aqui está o código baseado no exemplo com link acima:
TestApp.java
:
package testapp;
import java.net.URI;
import java.net.URISyntaxException;
public class TestApp {
public static void main(String[] args) {
try {
// open websocket
final WebsocketClientEndpoint clientEndPoint = new WebsocketClientEndpoint(new URI("wss://real.okcoin.cn:10440/websocket/okcoinapi"));
// add listener
clientEndPoint.addMessageHandler(new WebsocketClientEndpoint.MessageHandler() {
public void handleMessage(String message) {
System.out.println(message);
}
});
// send message to websocket
clientEndPoint.sendMessage("{'event':'addChannel','channel':'ok_btccny_ticker'}");
// wait 5 seconds for messages from websocket
Thread.sleep(5000);
} catch (InterruptedException ex) {
System.err.println("InterruptedException exception: " + ex.getMessage());
} catch (URISyntaxException ex) {
System.err.println("URISyntaxException exception: " + ex.getMessage());
}
}
}
WebsocketClientEndpoint.java
:
package testapp;
import java.net.URI;
import javax.websocket.ClientEndpoint;
import javax.websocket.CloseReason;
import javax.websocket.ContainerProvider;
import javax.websocket.OnClose;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.WebSocketContainer;
/**
* ChatServer Client
*
* @author Jiji_Sasidharan
*/
@ClientEndpoint
public class WebsocketClientEndpoint {
Session userSession = null;
private MessageHandler messageHandler;
public WebsocketClientEndpoint(URI endpointURI) {
try {
WebSocketContainer container = ContainerProvider.getWebSocketContainer();
container.connectToServer(this, endpointURI);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
/**
* Callback hook for Connection open events.
*
* @param userSession the userSession which is opened.
*/
@OnOpen
public void onOpen(Session userSession) {
System.out.println("opening websocket");
this.userSession = userSession;
}
/**
* Callback hook for Connection close events.
*
* @param userSession the userSession which is getting closed.
* @param reason the reason for connection close
*/
@OnClose
public void onClose(Session userSession, CloseReason reason) {
System.out.println("closing websocket");
this.userSession = null;
}
/**
* Callback hook for Message Events. This method will be invoked when a client send a message.
*
* @param message The text message
*/
@OnMessage
public void onMessage(String message) {
if (this.messageHandler != null) {
this.messageHandler.handleMessage(message);
}
}
/**
* register message handler
*
* @param msgHandler
*/
public void addMessageHandler(MessageHandler msgHandler) {
this.messageHandler = msgHandler;
}
/**
* Send a message.
*
* @param message
*/
public void sendMessage(String message) {
this.userSession.getAsyncRemote().sendText(message);
}
/**
* Message handler.
*
* @author Jiji_Sasidharan
*/
public static interface MessageHandler {
public void handleMessage(String message);
}
}
TooTallNate tem um cliente simples https://github.com/TooTallNate/Java-WebSocket
Basta adicionar o java_websocket.jar na pasta dist em seu projeto.
// e para fechar websocket
fonte
Dê uma olhada nestes exemplos de Java EE 7 de Arun Gupta.
Eu fiz o garfo no github .
a Principal
ClientEndpoint
fonte
Aqui está um exemplo simples .. você pode fazer o download e testá-lo http://www.pretechsol.com/2014/12/java-ee-websocket-simple-example.html
fonte
Use esta biblioteca org.java_websocket
A primeira coisa que você deve importar essa biblioteca em build.gradle
em seguida, adicione a implementação na dependência {}
Então você pode usar este código
Em sua atividade declare objeto para Websocketclient como
em seguida, adicione este método para retorno de chamada
}
fonte
Eu tenho Spring 4.2 em meu projeto e muitas implementações SockJS Stomp geralmente funcionam bem com implementações Spring Boot. Esta implementação do Baeldung funcionou (para mim, sem mudar do Spring 4.2 para 5). Depois de usar as dependências mencionadas em seu blog, ele ainda me deu ClassNotFoundError. Eu adicionei a dependência abaixo para corrigi-lo.
fonte