2015-04-01 7 views
5

Sto provando a creare un'applicazione server/client basata su Web tramite avvio a molla.Scrittura di un client per la connessione a websocket in avvio di primavera

Il server accetta una connessione socket e quando riceve un messaggio dal client lo elaborerà, quindi restituirà alcuni dati. Il server ha un gestore websocket che elaborerà correttamente una richiesta.

public class DataWebSocketHandler extends TextWebSocketHandler { 

private static Logger logger = LoggerFactory.getLogger(DataWebSocketHandler.class); 

private final DataService dataService; 

@Autowired 
public DataWebSocketHandler(DataService dataService) { 
    this.dataService = dataService; 
} 

@Override 
public void afterConnectionEstablished(WebSocketSession session) { 
    logger.debug("Opened new session in instance " + this); 
} 

@Override 
public void handleTextMessage(WebSocketSession session, TextMessage message) 
     throws Exception { 
    byte[] payload = this.dataService.getDataBytes(message.getPayload()); 
    session.sendMessage(new BinaryMessage(payload)); 
} 

@Override 
public void handleTransportError(WebSocketSession session, Throwable exception) 
     throws Exception { 
    session.close(CloseStatus.SERVER_ERROR); 
} 

} 

e registrato

@Override 
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { 
    registry.addHandler(dataWebSocketHandler(), "/data").withSockJS(); 
} 

Il mio problema è, è che non ho idea di come scrivere un client in grado di connettersi al server (assumendo che ho scritto correttamente il server) e da estensioni how per inviare il messaggio e come ricevere tali dati dal lato client.

Non riesco a trovare un esempio di questo, ma ci sono un sacco dove è scritto un websocket che trasmette a tutti i client abbonati a un socket, che non voglio.

Il server utilizza il server tomcat incorporato.

risposta

3

Credo che questo è ciò che stai cercando

https://github.com/spring-projects/spring-boot/tree/master/spring-boot-samples/spring-boot-sample-websocket-jetty/src/main/java/samples/websocket/jetty/echo

questo è un codice lato server simile ..

https://github.com/spring-projects/spring-boot/blob/master/spring-boot-samples/spring-boot-sample-websocket-jetty/src/test/java/samples/websocket/jetty/SampleWebSocketsApplicationTests.java

E qui è il lato client utilizzando .. org.springframework.web.socket.client.standard.StandardWebSocketClient e alcune configurazioni.

Credo che si può capire il resto;)

Acclamazioni

+0

collegamenti sono 404, si prega di aggiornare – Jackie

+1

collegamenti aggiornati .. –