@Override public void onClose(org.glassfish.grizzly.websockets.WebSocket gWebSocket, DataFrame dataFrame) { try { if (ahcListener instanceof WebSocketCloseCodeReasonListener) { ClosingFrame cf = ClosingFrame.class.cast(dataFrame); WebSocketCloseCodeReasonListener.class.cast(ahcListener).onClose(webSocket, cf.getCode(), cf.getReason()); } else { ahcListener.onClose(webSocket); } } catch (Throwable e) { ahcListener.onError(e); } }
@Override public DataFrame create(boolean fin, byte[] data) { return new ClosingFrame(data); }
public ClosingFrame(byte[] data) { super(new ClosingFrameType()); setPayload(data); }
@Override public void onClose(final DataFrame frame) { if (state.compareAndSet(State.CONNECTED, State.CLOSING)) { final ClosingFrame closing = (ClosingFrame) frame; protocolHandler.close(closing.getCode(), closing.getTextPayload()); } else { state.set(State.CLOSED); protocolHandler.doClose(); } WebSocketListener listener; while ((listener = listeners.poll()) != null) { listener.onClose(this, frame); } }
@Override public void onClose(WebSocket socket, DataFrame frame) { ClosingFrame closingFrame = (ClosingFrame)frame; CloseReason closeReason; try { closeReason = CloseReason.forCloseCode(closingFrame.getCode()); } catch (Exception e) { logger.error("Unexpected close code " + closingFrame.getCode() + " in closing dataFrame " + frame); closeReason = CloseReason.UNEXPECTED_CONDITION; } closedSockets.onNext(new Pair<>(socket, closeReason)); }
@Override public void setPayload(byte[] bytes) { if (bytes.length == 1) { throw new ProtocolError("Closing frame payload, if present, must be a minimum of 2 bytes in length"); } if (bytes.length > 0) { code = (int) Utils.toLong(bytes, 0, 2); if (code < 1000 || code == 1004 || code == 1005 || code == 1006 || (code > 1011 && code < 3000) || code > 4999) { throw new ProtocolError("Illegal status code: " + code); } if (bytes.length > 2) { utf8Decode(bytes); } } }
@Override public void onClose(final DataFrame frame) { if (state.compareAndSet(State.CONNECTED, State.CLOSING)) { final ClosingFrame closing = (ClosingFrame) frame; protocolHandler.close(closing.getCode(), closing.getTextPayload()); } else { state.set(State.CLOSED); protocolHandler.doClose(); } WebSocketListener listener; while ((listener = listeners.poll()) != null) { listener.onClose(this, frame); } }
@Override public void setPayload(byte[] bytes) { if (bytes.length == 1) { throw new ProtocolError("Closing frame payload, if present, must be a minimum of 2 bytes in length"); } if (bytes.length > 0) { code = (int) Utils.toLong(bytes, 0, 2); if (code < 1000 || code == 1004 || code == 1005 || code == 1006 || (code > 1011 && code < 3000) || code > 4999) { throw new ProtocolError("Illegal status code: " + code); } if (bytes.length > 2) { utf8Decode(bytes); } } }
@Override public void onClose(final DataFrame frame) { if (state.compareAndSet(State.CONNECTED, State.CLOSING)) { final ClosingFrame closing = (ClosingFrame) frame; protocolHandler.close(closing.getCode(), closing.getTextPayload()); } else { state.set(State.CLOSED); protocolHandler.doClose(); } WebSocketListener listener; while ((listener = listeners.poll()) != null) { listener.onClose(this, frame); } }
@Override public void onClose(org.glassfish.grizzly.websockets.WebSocket gWebSocket, DataFrame dataFrame) { try { if (ahcListener instanceof WebSocketCloseCodeReasonListener) { ClosingFrame cf = ClosingFrame.class.cast(dataFrame); WebSocketCloseCodeReasonListener.class.cast(ahcListener).onClose(webSocket, cf.getCode(), cf.getReason()); } else { ahcListener.onClose(webSocket); } } catch (Throwable e) { ahcListener.onError(e); } }
@Override public DataFrame create(boolean fin, byte[] data) { return new ClosingFrame(data); }
public ClosingFrame(byte[] data) { super(new ClosingFrameType()); setPayload(data); }
@Override public void setPayload(byte[] bytes) { if (bytes.length == 1) { throw new ProtocolError("Closing frame payload, if present, must be a minimum of 2 bytes in length"); } if (bytes.length > 0) { code = (int) Utils.toLong(bytes, 0, 2); if (code < 1000 || code == 1004 || code == 1005 || code == 1006 || (code > 1011 && code < 3000) || code > 4999) { throw new ProtocolError("Illegal status code: " + code); } if (bytes.length > 2) { utf8Decode(bytes); } } }
@Override public void onClose(final DataFrame frame) { if (state.compareAndSet(State.CONNECTED, State.CLOSING)) { final ClosingFrame closing = (ClosingFrame) frame; protocolHandler.close(closing.getCode(), closing.getTextPayload()); } else { state.set(State.CLOSED); protocolHandler.doClose(); } WebSocketListener listener; while ((listener = listeners.poll()) != null) { listener.onClose(this, frame); } }
@Override public void onClose(org.glassfish.grizzly.websockets.WebSocket gWebSocket, DataFrame dataFrame) { try { if (ahcListener instanceof WebSocketCloseCodeReasonListener) { ClosingFrame cf = ClosingFrame.class.cast(dataFrame); WebSocketCloseCodeReasonListener.class.cast(ahcListener).onClose(webSocket, cf.getCode(), cf.getReason()); } else { ahcListener.onClose(webSocket); } } catch (Throwable e) { ahcListener.onError(e); } }
@Override public DataFrame create(boolean fin, byte[] data) { return new ClosingFrame(data); }
public ClosingFrame(byte[] data) { super(new ClosingFrameType()); setPayload(data); }
@Override public void setPayload(byte[] bytes) { if (bytes.length == 1) { throw new ProtocolError("Closing frame payload, if present, must be a minimum of 2 bytes in length"); } if (bytes.length > 0) { code = (int) Utils.toLong(bytes, 0, 2); if (code < 1000 || code == 1004 || code == 1005 || code == 1006 || (code > 1011 && code < 3000) || code > 4999) { throw new ProtocolError("Illegal status code: " + code); } if (bytes.length > 2) { utf8Decode(bytes); } } }
@Override public void onClose(final DataFrame frame) { if (state.compareAndSet(State.CONNECTED, State.CLOSING)) { final ClosingFrame closing = (ClosingFrame) frame; protocolHandler.close(closing.getCode(), closing.getTextPayload()); } else { state.set(State.CLOSED); protocolHandler.doClose(); } WebSocketListener listener; while ((listener = listeners.poll()) != null) { listener.onClose(this, frame); } }
@Override public void onClose(org.glassfish.grizzly.websockets.WebSocket gWebSocket, DataFrame dataFrame) { try { if (ahcListener instanceof WebSocketCloseCodeReasonListener) { ClosingFrame cf = ClosingFrame.class.cast(dataFrame); WebSocketCloseCodeReasonListener.class.cast(ahcListener).onClose(webSocket, cf.getCode(), cf.getReason()); } else { ahcListener.onClose(webSocket); } } catch (Throwable e) { ahcListener.onError(e); } }