com.fireflysource.net.websocket.common.stream.ConnectionState Maven / Gradle / Ivy
package com.fireflysource.net.websocket.common.stream;
import com.fireflysource.net.websocket.common.model.CloseInfo;
/**
* Connection states as outlined in RFC6455.
*/
public enum ConnectionState {
/**
* [RFC] Initial state of a connection, the upgrade request / response is in progress
*/
CONNECTING,
/**
* [Impl] Intermediate state between CONNECTING and OPEN, used to indicate that a upgrade request/response is successful, but the end-user provided socket's
* onOpen code has yet to run.
*
* This state is to allow the local socket to initiate messages and frames, but to NOT start reading yet.
*/
CONNECTED,
/**
* [RFC] The websocket connection is established and open.
*
* This indicates that the Upgrade has succeed, and the end-user provided socket's onOpen code has completed.
*
* It is now time to start reading from the remote endpoint.
*/
OPEN,
/**
* [RFC] The websocket closing handshake is started.
*
* This can be considered a half-closed state.
*
* When receiving this as an event on {@link IOState.ConnectionStateListener#onConnectionStateChange(ConnectionState)} a close frame should be sent using
* the {@link CloseInfo} available from {@link IOState#getCloseInfo()}
*/
CLOSING,
/**
* [RFC] The websocket connection is closed.
*
* Connection should be disconnected and no further reads or writes should occur.
*/
CLOSED
}