@Override public Mono<Void> handle(WebSocketSession session) { String protocol = session.getHandshakeInfo().getSubProtocol(); WebSocketMessage message = session.textMessage(protocol != null ? protocol : "none"); return session.send(Mono.just(message)); } }
@Override public Mono<Void> handle(WebSocketSession session) { String protocol = session.getHandshakeInfo().getSubProtocol(); if (!StringUtils.hasText(protocol)) { return Mono.error(new IllegalStateException("Missing protocol")); } List<String> protocols = session.getHandshakeInfo().getHeaders().get(SEC_WEBSOCKET_PROTOCOL); assertThat(protocols).contains("echo-v1,echo-v2"); WebSocketMessage message = session.textMessage(protocol); return doSend(session, Mono.just(message)); } }
assertThat(info.getSubProtocol()) .as("Wrong protocol accepted") .isEqualTo(protocol);
@Test public void subProtocol() throws Exception { String protocol = "echo-v1"; AtomicReference<HandshakeInfo> infoRef = new AtomicReference<>(); MonoProcessor<Object> output = MonoProcessor.create(); this.client.execute(getUrl("/sub-protocol"), new WebSocketHandler() { @Override public List<String> getSubProtocols() { return Collections.singletonList(protocol); } @Override public Mono<Void> handle(WebSocketSession session) { infoRef.set(session.getHandshakeInfo()); return session.receive() .map(WebSocketMessage::getPayloadAsText) .subscribeWith(output) .then(); } }) .block(TIMEOUT); HandshakeInfo info = infoRef.get(); assertThat(info.getHeaders().getFirst("Upgrade"), Matchers.equalToIgnoringCase("websocket")); assertEquals(protocol, info.getHeaders().getFirst("Sec-WebSocket-Protocol")); assertEquals("Wrong protocol accepted", protocol, info.getSubProtocol()); assertEquals("Wrong protocol detected on the server side", protocol, output.block(TIMEOUT)); }
@Override public Mono<Void> handle(WebSocketSession session) { String protocol = session.getHandshakeInfo().getSubProtocol(); WebSocketMessage message = session.textMessage(this.posts.findAll().takeLast(0).toString()); return doSend(session, Mono.just(message)); }
String acceptedProtocol = session.getHandshakeInfo().getSubProtocol(); if (acceptedProtocol != null) { if (acceptedProtocol.equals(WampWebSocketHandler.MSGPACK_PROTOCOL)) {
ByteBuffer byteBuffer = inMsg.getPayload().asByteBuffer(); String acceptedProtocol = session.getHandshakeInfo().getSubProtocol(); if (acceptedProtocol != null) { if (acceptedProtocol.equals(WampWebSocketHandler.MSGPACK_PROTOCOL)) {