Http session isn't available from com.codeminders.socketio.server.Socket with websocket transport at least in Jetty 9.4.7 because of method org.eclipse.jetty.websocket.servlet.UpgradeHttpServletRequest#complete :
public void complete()
{
request = null;
}
As a workaround I have overridden WebsocketConfigurator#modifyHandshake :
@Override
public void modifyHandshake(
ServerEndpointConfig config,
HandshakeRequest request,
HandshakeResponse response
){
request.getHttpSession(); // it causes session "caching" in UpgradeHttpServletRequest
super.modifyHandshake(config, request, response);
}
But it looks like a hack and it isn't so reliable.
And more, @ServerEndpoint(value="/socket.io/", configurator = WebsocketConfigurator.class) on WebsocketTransportConnection does not allow easy override configurator.