package eu.hgross.blaubot.websocket; import eu.hgross.blaubot.core.BlaubotConstants; import eu.hgross.blaubot.core.acceptor.ConnectionMetaDataDTO; /** * The connection meta data for the Websocket acceptor */ public class WebsocketConnectionMetaDataDTO extends ConnectionMetaDataDTO { protected static final String ACCEPTOR_TYPE = BlaubotConstants.ACCEPTOR_TYPE_WEBSOCKET; private static final String URI = "URI"; public WebsocketConnectionMetaDataDTO(ConnectionMetaDataDTO connectionMetaDataDTO) { super(); if(!connectionMetaDataDTO.getConnectionType().equals(ACCEPTOR_TYPE)) { throw new IllegalArgumentException("Acceptor types don't match: " + ACCEPTOR_TYPE + " != " + connectionMetaDataDTO.getConnectionType()); } metaData = connectionMetaDataDTO.getMetaData(); } /** * @param host the hostname to connect to * @param path the path to connect the websocket with (with leading slash) * @param port the port */ public WebsocketConnectionMetaDataDTO(String host, String path, int port) { super(); setAcceptorType(ACCEPTOR_TYPE); getMetaData().put(URI, "ws://" + host + ":" + port + path); } /** * @return the uri string to connect to the acceptor including port, host, path and protocol (ws, wss) */ public String getUri() { return metaData.get(URI); } }