@Override public void onDisconnect(Connection connection, ByteBufferProvider bufferProvider) throws IOException { releaseByteBuffers(tempMessage); webSocketHandler.onDisconnect(this); } }
protected void releaseByteBuffers(Message message) { for (Frame frame : message.getFrames()) { ((ByteArrayHolder) frame.getByteArraySupplier()).release(webSocketHandler.byteArrayHolderPool); } }
public void broadcast(Message message) { for (T listener : getListeners()) { try { listener.sendMessage(message); } catch (Exception e) { e.printStackTrace(); onDisconnect(listener); } } }
public byte[] asBytes() { byte[] data = new byte[getBytesLength()]; asBytes(data); return data; }
@Override public void onMessage(WebSocketListener listener, Message message) { listener.sendMessage(message); } };
public void close(int status, String message) { if (connection.isAlive()) { sendFrame(Frame.closeFrame(status, message)); connection.setCloseOnFinishWriting(true); } else connection.close(); }
public void send(final Message message) throws IOException { doWithReconnects(new IORunnable() { @Override public void run() throws IOException { for (Frame frame : message.getFrames()) { frame.mask().write(out); } out.flush(); } }); }
public int getBytesLength() { int length = 0; for (Frame frame : frames) length += frame.getLength(); return length; }
public byte[] getFrameBytes() { if (data == null) { data = new byte[MAX_HEADER_LENGTH]; offset = MAX_HEADER_LENGTH; } getHeader(data); return data; }
@Override public byte[] supply(int minLength) { if (buffer.length < minLength) createArray(minLength); return buffer; }
@Override public void onMessage(WebSocketListener listener, Message message) { listener.sendMessage(message); } };
public void send(final Frame frame) throws IOException { doWithReconnects(new IORunnable() { @Override public void run() throws IOException { frame.write(out); if (frame.isFinalFrame()) out.flush(); } }); }