Как получить идентификатор сеанса в Java Spring WebSocketStompClient?Как получить идентификатор сеанса весной WebSocketStompClient?
У меня есть WebSocketStompClient и StompSessionHandlerAdapter, в которых экземпляры прекрасно подключаются к websocket на моем сервере. WebSocketStompClient использует SockJsClient.
Но я не знаю, как получить идентификатор сеанса связи в сети. В коде обработчика с топает сеанс на стороне клиента
private class ProducerStompSessionHandler extends StompSessionHandlerAdapter {
...
@Override
public void afterConnected(StompSession session, StompHeaders connectedHeaders) {
...
}
топает сеанс содержит идентификатор сеанса, который отличается от идентификатора сеанса на сервере. Так что с этого ид:
DEBUG ... Processing SockJS open frame in WebSocketClientSockJsSession[id='d6aaeacf90b84278b358528e7d96454a...
DEBUG ... DefaultStompSession - Connection established in session id=42e95c88-cbc9-642d-2ff9-e5c98fb85754
мне нужно первый идентификатор сеанса, из WebSocketClientSockJsSession. Но я не нашел в WebSocketStompClient или SockJsClient какой-либо метод для получения чего-то вроде идентификатора сеанса ...
Спасибо! Из-за того, что сервер работает с клиентом javascript, я отправляю идентификатор сеанса в java-клиент по его запросу. – Irina
Вместо написания собственного перехватчика вы можете использовать встроенный ['HttpSessionHandshakeInterceptor'] (https://docs.spring.io/spring-framework/docs/5.0.0.RELEASE/javadoc-api/org/ springframework/веб/розетка/сервер/поддержка/HttpSessionHandshakeInterceptor.html). – izstas