public Message append(byte[] bytes, int offset, int length) { add(new Frame(bytes, offset, length)); return this; }
public void send(byte[] data, int offset, int length) throws IOException { send(new Frame(data, offset, length).mask()); }
public long ping() throws IOException { long time = System.currentTimeMillis(); send(new Frame(Frame.OPCODE_PING)); Frame frame = readFrame(); while (!frame.isPong()) { onFrame(frame); if (frame.isClose()) break; frame = readFrame(); } return System.currentTimeMillis() - time; }
private Frame readFrame() throws IOException { while (!Frame.hasHeaders(buffer, 0, limit)) { int read = in.read(buffer, limit, buffer.length - limit); if (read == -1) throw new IOException("Connection closed"); limit += read; } Frame frame = new Frame(); int r = frame.read(buffer, 0, limit); limit -= r; if (limit != 0) System.arraycopy(buffer, r, buffer, 0, limit); if (frame.isComplete()) return frame; else { while (!frame.isComplete()) { frame.read(in); } return frame; } }
public void close() { if (connection.isAlive()) { sendFrame(new Frame(Frame.OPCODE_CONNECTION_CLOSE)); connection.setCloseOnFinishWriting(true); } else connection.close(); }
public void close() throws IOException { if (!connected) return; send(new Frame(Frame.OPCODE_CONNECTION_CLOSE)); Frame frame = readFrame(); while (!frame.isClose()) { onFrame(frame); frame = readFrame(); } connected = false; onClose(); } }
continue outer; frame = this.tempFrame = new Frame(connection.getServer().getWebsocketFrameLengthLimit()); ByteArrayHolder byteArraySupplier = (ByteArrayHolder) webSocketHandler.byteArrayHolderPool.get(); byteArraySupplier.used = true;