return send(new TextFrame(fragment, false, last));
}
}
public Future<Frame> close(final int code, final String reason) {
final CloseFrame outgoingCloseFrame;
final CloseReason closeReason = new CloseReason(CloseReason.CloseCodes.getCloseCode(code), reason);
if (code == CloseReason.CloseCodes.NO_STATUS_CODE.getCode() ||
code == CloseReason.CloseCodes.CLOSED_ABNORMALLY.getCode() ||
code == CloseReason.CloseCodes.TLS_HANDSHAKE_FAILURE.getCode() ||
// client side cannot send SERVICE_RESTART or TRY_AGAIN_LATER
// will be replaced with NORMAL_CLOSURE
(client && (code == CloseReason.CloseCodes.SERVICE_RESTART.getCode() ||
code == CloseReason.CloseCodes.TRY_AGAIN_LATER.getCode()))) {
outgoingCloseFrame = new CloseFrame(new CloseReason(CloseReason.CloseCodes.NORMAL_CLOSURE, reason));
} else {
outgoingCloseFrame = new CloseFrame(closeReason);
}
final Future<Frame> send = send(outgoingCloseFrame, null, false);
webSocket.onClose(new CloseFrame(closeReason));
return send;
}