1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
| import lombok.extern.slf4j.Slf4j; import org.java_websocket.client.WebSocketClient; import org.java_websocket.drafts.Draft; import org.java_websocket.drafts.Draft_6455; import org.java_websocket.handshake.ServerHandshake;
import java.net.URI; import java.net.URISyntaxException; import java.nio.ByteBuffer; import java.util.HashMap; import java.util.Map; import java.util.function.Consumer;
@Slf4j public class DefaultWebSocketClient extends WebSocketClient {
private static final int connectTimeout = 2000; private static final Draft protocolDraft = new Draft_6455(); private static final Map<String, String> httpHeaders = new HashMap<>(); private Consumer<String> callString; private Consumer<ByteBuffer> callByte;
public DefaultWebSocketClient(String serverUri, Consumer<String> callString) throws URISyntaxException { this(new URI(serverUri)); this.callString = callString; }
public DefaultWebSocketClient(Consumer<ByteBuffer> callByte, String serverUri) throws URISyntaxException { this(new URI(serverUri)); this.callByte = callByte; }
public DefaultWebSocketClient(String serverUri, Map<String, String> httpHeaders) throws URISyntaxException { this(new URI(serverUri), httpHeaders); }
public DefaultWebSocketClient(URI serverUri) { this(serverUri, protocolDraft); }
public DefaultWebSocketClient(URI serverUri, Draft protocolDraft) { this(serverUri, protocolDraft, httpHeaders); }
public DefaultWebSocketClient(URI serverUri, Map<String, String> httpHeaders) { this(serverUri, protocolDraft, httpHeaders); }
public DefaultWebSocketClient(URI serverUri, Draft protocolDraft, Map<String, String> httpHeaders) { this(serverUri, protocolDraft, httpHeaders, connectTimeout); }
public DefaultWebSocketClient(URI serverUri, Draft protocolDraft, Map<String, String> httpHeaders, int connectTimeout) { super(serverUri, protocolDraft, httpHeaders, connectTimeout); log.debug("构建 DefaultWebSocketClient" + "\n\tURI: {}" + "\n\tDraft: {}" + "\n\tHeaders: {}" + "\n\ttimeOut: {}", serverUri, protocolDraft, httpHeaders, connectTimeout); }
@Override public void onOpen(ServerHandshake handshakedata) { log.debug("onOpen…………"); }
@Override public void onMessage(String message) { log.debug("onMessage…………"); log.info("result {}", message); if (callString != null) { callString.accept(message); } }
@Override public void onMessage(ByteBuffer message) { log.debug("onMessage-bytes…………"); log.info("result {}", message); if (callByte != null) { callByte.accept(message); } }
@Override public void onClose(int code, String reason, boolean remote) { log.debug("onClose…………"); }
@Override public void onError(Exception ex) { log.debug("onError………… {}", ex.getMessage()); } }
|