package com.sonycsl.Kadecot.server; import org.java_websocket.drafts.Draft; import org.java_websocket.drafts.Draft_17; import org.java_websocket.exceptions.InvalidHandshakeException; import org.java_websocket.handshake.ClientHandshake; import org.java_websocket.handshake.HandshakeBuilder; import org.java_websocket.handshake.ServerHandshakeBuilder; public class Draft_17_Protocol extends Draft_17 { private static final String SEC_WS_PROTOCOL = "Sec-WebSocket-Protocol"; private String mSupportProtocol; public Draft_17_Protocol(String protocol) { mSupportProtocol = protocol; } @Override public HandshakeState acceptHandshakeAsServer(ClientHandshake handshakedata) throws InvalidHandshakeException { if (super.acceptHandshakeAsServer(handshakedata) == HandshakeState.MATCHED) { String protocol = handshakedata.getFieldValue(SEC_WS_PROTOCOL); if (mSupportProtocol.equals(protocol)) { return HandshakeState.MATCHED; } } return HandshakeState.NOT_MATCHED; } @Override public HandshakeBuilder postProcessHandshakeResponseAsServer(ClientHandshake request, ServerHandshakeBuilder response) throws InvalidHandshakeException { HandshakeBuilder builder = super.postProcessHandshakeResponseAsServer(request, response); builder.put(SEC_WS_PROTOCOL, mSupportProtocol); return builder; } @Override public Draft copyInstance() { return new Draft_17_Protocol(mSupportProtocol); } }