@OnWebSocketConnect @SuppressWarnings("unused") public void onWebSocketConnect(final Session session) { SocketAddress localAddress = session.getLocalAddress(); SocketAddress remoteAddress = session.getRemoteAddress(); _protocolEngine = _factory.newProtocolEngine(remoteAddress); // Let AMQP do timeout handling session.setIdleTimeout(0); _connectionWrapper = new ConnectionWrapper(session, localAddress, remoteAddress, _protocolEngine, _server.getThreadPool()); if (session.getUpgradeRequest() instanceof ServletUpgradeRequest) { ServletUpgradeRequest upgradeRequest = (ServletUpgradeRequest) session.getUpgradeRequest(); if (upgradeRequest.getCertificates() != null && upgradeRequest.getCertificates().length > 0) { _connectionWrapper.setPeerCertificate(upgradeRequest.getCertificates()[0]); } } _protocolEngine.setNetworkConnection(_connectionWrapper); _protocolEngine.setWorkListener(object -> _server.getThreadPool().execute(() -> _connectionWrapper.doWork())); _activeConnections.add(_connectionWrapper); _idleTimeoutChecker.wakeup(); }
socket = new MQTTSocket(HttpTransportUtils.generateWsRemoteAddress(req.getHttpServletRequest())); ((MQTTSocket) socket).setTransportOptions(new HashMap<>(transportOptions)); ((MQTTSocket) socket).setPeerCertificates(req.getCertificates()); resp.setAcceptedSubProtocol(getAcceptedSubProtocol(mqttProtocols, req.getSubProtocols(), "mqtt")); break; ((StompSocket) socket).setPeerCertificates(req.getCertificates()); resp.setAcceptedSubProtocol(getAcceptedSubProtocol(stompProtocols, req.getSubProtocols(), "stomp")); break;
socket = new MQTTSocket(HttpTransportUtils.generateWsRemoteAddress(req.getHttpServletRequest())); ((MQTTSocket) socket).setTransportOptions(new HashMap<>(transportOptions)); ((MQTTSocket) socket).setPeerCertificates(req.getCertificates()); resp.setAcceptedSubProtocol(getAcceptedSubProtocol(mqttProtocols, req.getSubProtocols(), "mqtt")); break; ((StompSocket) socket).setPeerCertificates(req.getCertificates()); resp.setAcceptedSubProtocol(getAcceptedSubProtocol(stompProtocols, req.getSubProtocols(), "stomp")); break;
socket = new MQTTSocket(HttpTransportUtils.generateWsRemoteAddress(req.getHttpServletRequest())); ((MQTTSocket) socket).setTransportOptions(new HashMap<>(transportOptions)); ((MQTTSocket) socket).setPeerCertificates(req.getCertificates()); resp.setAcceptedSubProtocol(getAcceptedSubProtocol(mqttProtocols, req.getSubProtocols(), "mqtt")); break; ((StompSocket) socket).setPeerCertificates(req.getCertificates()); resp.setAcceptedSubProtocol(getAcceptedSubProtocol(stompProtocols, req.getSubProtocols(), "stomp")); break;
private WebSocketListener findWSTransport(ServletUpgradeRequest request, ServletUpgradeResponse response) { WSTransportProxy proxy = null; for (String subProtocol : request.getSubProtocols()) { try { String remoteAddress = HttpTransportUtils.generateWsRemoteAddress(request.getHttpServletRequest(), subProtocol); URI remoteURI = new URI(remoteAddress); TransportFactory factory = TransportFactory.findTransportFactory(remoteURI); if (factory instanceof BrokerServiceAware) { ((BrokerServiceAware) factory).setBrokerService(brokerService); } Transport transport = factory.doConnect(remoteURI); proxy = new WSTransportProxy(remoteAddress, transport); proxy.setPeerCertificates(request.getCertificates()); proxy.setTransportOptions(transportOptions); response.setAcceptedSubProtocol(proxy.getSubProtocol()); } catch (Exception e) { proxy = null; // Keep going and try any other sub-protocols present. continue; } } return proxy; }
private WebSocketListener findWSTransport(ServletUpgradeRequest request, ServletUpgradeResponse response) { WSTransportProxy proxy = null; for (String subProtocol : request.getSubProtocols()) { try { String remoteAddress = HttpTransportUtils.generateWsRemoteAddress(request.getHttpServletRequest(), subProtocol); URI remoteURI = new URI(remoteAddress); TransportFactory factory = TransportFactory.findTransportFactory(remoteURI); if (factory instanceof BrokerServiceAware) { ((BrokerServiceAware) factory).setBrokerService(brokerService); } Transport transport = factory.doConnect(remoteURI); proxy = new WSTransportProxy(remoteAddress, transport); proxy.setPeerCertificates(request.getCertificates()); proxy.setTransportOptions(transportOptions); response.setAcceptedSubProtocol(proxy.getSubProtocol()); } catch (Exception e) { proxy = null; // Keep going and try any other sub-protocols present. continue; } } return proxy; }
private WebSocketListener findWSTransport(ServletUpgradeRequest request, ServletUpgradeResponse response) { WSTransportProxy proxy = null; for (String subProtocol : request.getSubProtocols()) { try { String remoteAddress = HttpTransportUtils.generateWsRemoteAddress(request.getHttpServletRequest(), subProtocol); URI remoteURI = new URI(remoteAddress); TransportFactory factory = TransportFactory.findTransportFactory(remoteURI); if (factory instanceof BrokerServiceAware) { ((BrokerServiceAware) factory).setBrokerService(brokerService); } Transport transport = factory.doConnect(remoteURI); proxy = new WSTransportProxy(remoteAddress, transport); proxy.setPeerCertificates(request.getCertificates()); proxy.setTransportOptions(transportOptions); response.setAcceptedSubProtocol(proxy.getSubProtocol()); } catch (Exception e) { proxy = null; // Keep going and try any other sub-protocols present. continue; } } return proxy; }