2015-04-01 15 views
5

Próbuję utworzyć aplikację serwera/klienta opartą na websocketed przy użyciu rozruchu sprężynowego.Pisanie klienta, aby połączyć się z websocket w rozruchu wiosennym

Serwer akceptuje połączenie z gniazdem, a gdy odbierze wiadomość tekstową od klienta, przetworzy ją, a następnie zwróci część danych. Serwer ma obsługę websocket, która poprawnie przetworzy żądanie.

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

} 

i zarejestrowany

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

Moim problemem jest to, że nie mam pojęcia jak napisać klienta, który może połączyć się z serwerem (zakładając pisałem serwer poprawnie) i rozszerzeń how aby wysłać wiadomość i jak otrzymać te dane po stronie klienta.

Nie udało mi się znaleźć tego przykładu, ale jest wiele miejsc, w których napisany jest websocket, który nadaje się do wszystkich klientów zasubskrybowanych w gnieździe, czego nie chcę.

Serwer korzysta z osadzonego serwera Tomcat.

Odpowiedz

3

Wierzę, że to jest to, czego szukasz

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

to podobny kod po stronie serwera ..

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

I tu jest po stronie klienta przy użyciu .. org.springframework.web.socket.client.standard.StandardWebSocketClient wyświetla niektóre inne ustawienia.

Wierzę, że można wymyślić resztę;)

Cheers

+0

linki 404, zaktualizuj – Jackie

+1

linki aktualizowane .. –

Powiązane problemy