本文整理匯總了Java中io.undertow.websockets.core.protocol.Handshake類的典型用法代碼示例。如果您正苦於以下問題:Java Handshake類的具體用法?Java Handshake怎麽用?Java Handshake使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。
Handshake類屬於io.undertow.websockets.core.protocol包,在下文中一共展示了Handshake類的6個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。
示例1: getHandshakeToUse
import io.undertow.websockets.core.protocol.Handshake; //導入依賴的package包/類
private Handshake getHandshakeToUse(ServletWebSocketHttpExchange exchange, ConfiguredServerEndpoint endpoint) {
Handshake handshake = new JsrHybi13Handshake(endpoint);
if (handshake.matches(exchange)) {
return handshake;
}
handshake = new JsrHybi08Handshake(endpoint);
if (handshake.matches(exchange)) {
return handshake;
}
handshake = new JsrHybi07Handshake(endpoint);
if (handshake.matches(exchange)) {
return handshake;
}
// Should never occur
throw new HandshakeFailureException("No matching Undertow Handshake found: " + exchange.getRequestHeaders());
}
示例2: processWebSocketRequest
import io.undertow.websockets.core.protocol.Handshake; //導入依賴的package包/類
private void processWebSocketRequest(Request request, Response response) {
HttpServletRequest servletRequest = request.getHttpServletRequest();
HttpServletResponse servletResponse = response.getHttpServletResponse();
WebSocketHttpExchange exchange = new ServletWebSocketHttpExchange(servletRequest, servletResponse, peerConnections);
// exchange.putAttachment(HandshakeUtil.PATH_PARAMS, Collections.<String, String>emptyMap());
Handshake handshake = getHandshake(exchange);
exchange.upgradeChannel((connection, serverExchange) -> {
WebSocketChannel channel = handshake.createChannel(exchange, connection, exchange.getBufferPool());
peerConnections.add(channel);
createWebSocketAdapter(request).onConnect(exchange, channel);
});
handshake.handshake(exchange);
}
示例3: doGet
import io.undertow.websockets.core.protocol.Handshake; //導入依賴的package包/類
@Override
protected void doGet(final HttpServletRequest req, final HttpServletResponse resp) throws ServletException, IOException {
final ServletWebSocketHttpExchange facade = new ServletWebSocketHttpExchange(req, resp, peerConnections);
Handshake handshaker = null;
for (Handshake method : handshakes) {
if (method.matches(facade)) {
handshaker = method;
break;
}
}
if (handshaker == null) {
UndertowLogger.REQUEST_LOGGER.debug("Could not find hand shaker for web socket request");
resp.sendError(StatusCodes.BAD_REQUEST);
return;
}
final Handshake selected = handshaker;
facade.upgradeChannel(new HttpUpgradeListener() {
@Override
public void handleUpgrade(StreamConnection streamConnection, HttpServerExchange exchange) {
WebSocketChannel channel = selected.createChannel(facade, streamConnection, facade.getBufferPool());
peerConnections.add(channel);
callback.onConnect(facade, channel);
}
});
handshaker.handshake(facade);
}
示例4: WebSocketProtocolHandshakeHandler
import io.undertow.websockets.core.protocol.Handshake; //導入依賴的package包/類
/**
* Create a new {@link WebSocketProtocolHandshakeHandler}
*
* @param callback The {@link WebSocketConnectionCallback} which will be executed once the handshake was
* established
*/
public WebSocketProtocolHandshakeHandler(final WebSocketConnectionCallback callback, final HttpHandler next) {
this.callback = callback;
Set<Handshake> handshakes = new HashSet<>();
handshakes.add(new Hybi13Handshake());
handshakes.add(new Hybi08Handshake());
handshakes.add(new Hybi07Handshake());
this.handshakes = handshakes;
this.next = next;
this.upgradeListener = null;
}
示例5: upgradeInternal
import io.undertow.websockets.core.protocol.Handshake; //導入依賴的package包/類
@Override
protected void upgradeInternal(ServerHttpRequest request, ServerHttpResponse response,
String selectedProtocol, List<Extension> selectedExtensions, final Endpoint endpoint)
throws HandshakeFailureException {
HttpServletRequest servletRequest = getHttpServletRequest(request);
HttpServletResponse servletResponse = getHttpServletResponse(response);
final ServletWebSocketHttpExchange exchange = createHttpExchange(servletRequest, servletResponse);
exchange.putAttachment(HandshakeUtil.PATH_PARAMS, Collections.<String, String>emptyMap());
ServerWebSocketContainer wsContainer = (ServerWebSocketContainer) getContainer(servletRequest);
final EndpointSessionHandler endpointSessionHandler = new EndpointSessionHandler(wsContainer);
final ConfiguredServerEndpoint configuredServerEndpoint = createConfiguredServerEndpoint(
selectedProtocol, selectedExtensions, endpoint, servletRequest);
final Handshake handshake = getHandshakeToUse(exchange, configuredServerEndpoint);
exchange.upgradeChannel(new HttpUpgradeListener() {
@Override
public void handleUpgrade(StreamConnection connection, HttpServerExchange serverExchange) {
Object bufferPool = ReflectionUtils.invokeMethod(getBufferPoolMethod, exchange);
WebSocketChannel channel = (WebSocketChannel) ReflectionUtils.invokeMethod(
createChannelMethod, handshake, exchange, connection, bufferPool);
if (peerConnections != null) {
peerConnections.add(channel);
}
endpointSessionHandler.onConnect(exchange, channel);
}
});
handshake.handshake(exchange);
}
示例6: getHandshake
import io.undertow.websockets.core.protocol.Handshake; //導入依賴的package包/類
private Handshake getHandshake(WebSocketHttpExchange exchange) {
for (Handshake handshake : handshakes) {
if (handshake.matches(exchange)) {
return handshake;
}
}
throw new PippoRuntimeException("No matching Undertow Handshake found: {}", exchange.getRequestHeaders());
}