public void broadcast(Message message) { for (T listener : getListeners()) { try { listener.sendMessage(message); } catch (Exception e) { e.printStackTrace(); onDisconnect(listener); } } }
@Override public void onMessage(WebSocketListener listener, Message message) { if ("close".equals(message.asString())) listener.close(); }
protected synchronized void sendFrame(Frame frame) { connection.write(convertFrameToReadableData(frame), (ByteBufferProvider) Thread.currentThread()); }
frame.unmask(); if (handlePing()) continue; if (handleClose()) continue; releaseByteBuffers(message); message.clear(); onError(e); releaseByteBuffers(message);
listener.onConnect(c, ByteBufferProvider.current());
@Override public void onMessage(WebSocketListener listener, Message message) { listener.sendMessage(message); }
@Override public void onMessage(WebSocketListener listener, Message message) { listener.sendMessage(message); }
@Override public void onMessage(WebSocketListener listener, Message message) { listener.sendMessage(message); }
@Override public void onMessage(WebSocketListener listener, Message message) { listener.sendMessage(message); }
protected T createListener(HttpConnection connection, WebSocketHandler handler) { return (T) new WebSocketListener(connection, handler); }
@Override public void onMessage(WebSocketListener listener, Message message) { listener.sendMessage(message); } };
public void close() { if (connection.isAlive()) { sendFrame(new Frame(Frame.OPCODE_CONNECTION_CLOSE)); connection.setCloseOnFinishWriting(true); } else connection.close(); }
private boolean handleClose() { if (tempFrame.isClose()) { sendFrame(tempFrame); connection.setCloseOnFinishWriting(true); tempFrame = null; return true; } return false; }
public synchronized void sendMessage(Message message) { for (Frame frame : message.getFrames()) { connection.write(convertFrameToReadableData(frame), (ByteBufferProvider) Thread.currentThread()); } }
private boolean handlePing() { if (tempFrame.isPing()) { tempFrame.setOpcode(Frame.OPCODE_PONG); sendFrame(tempFrame); tempFrame = null; return true; } return false; }
@Override public void onMessage(WebSocketListener listener, Message message) { listener.sendMessage(message); } };
@Override public void onMessage(WebSocketListener listener, Message message) { listener.sendMessage(message); } };
@Override public void onDisconnect(Connection connection, ByteBufferProvider bufferProvider) throws IOException { releaseByteBuffers(tempMessage); webSocketHandler.onDisconnect(this); } }
public void close(int status, String message) { if (connection.isAlive()) { sendFrame(Frame.closeFrame(status, message)); connection.setCloseOnFinishWriting(true); } else connection.close(); }
@Override public void onMessage(WebSocketListener listener, Message message) { listener.sendMessage(message); } };